2012-03-15 60 views
0

我正在閱讀Yii blog tutorial。這段代碼做什麼Yii博客教程查詢

foreach($models as $model) 
    self::$_items[$type][$model->code]=$model->name; 

loadItems靜態函數。 [$model->code]$model->name來自哪裏,這行代碼是做什麼的?

回答

1

的loadItems()是加載某些「類型」的可用狀態,你需要,例如,用於意見,或職位靜態函數。因此,例如,它在呈現「帖子編輯頁面」之前準備「帖子」的可用「狀態描述」,以便在帖子狀態下拉菜單中獲得所需的值。

$模型在您引用的行之前的靜態函數內實例化。這意味着,雖然這確實是靜態方法,這意味着在沒有實例化「Lookup」類的情況下調用它,但它還是做了其他事情。這裏的句號是強調一個類方法是一個完全包含的代碼單元。它可以做任何需要做的事情。一般來說,不需要關心它的內部構件(當然除非這個人正在設計和編寫這些內部構件),但我的觀點是你需要掌握兩個截然不同的東西 - 第一個是這個函數在被引用從外部到- 這只是返回某個類的查找項目。第二件事是內部,雖然是一個靜態函數,它實例化一些類對象,在我們的情況下,相同類型的對象 - 查找。 這個實例使用Yii的Active Record功能完成 - 「findAll()」方法將爲您執行所需的SQL,並將找到的記錄的結果集作爲Lookup類型的實例化對象的數組返回。

我希望這會清除一些......。