我正在阅读Yii blog tutorial。这段代码做什么
foreach($models as $model)
self::$_items[$type][$model->code]=$model->name;
在loadItems
静态函数中。 [$model->code]
和$model->name
来自哪里以及这行代码的作用是什么?
答案 0 :(得分:1)
loadItems()是一个静态函数,可以加载您需要的某些“类型”的可用状态,例如 comments 或 posts 。例如,它在呈现“帖子编辑页面”之前为“帖子”准备了可用的“状态描述”,因此您将在帖子状态下拉列表中获得所需的值。
$ model在您引用的行之前的静态函数中实例化。这意味着虽然这确实是静态方法,这意味着在没有实例化“Lookup”类的情况下调用,但在其中,它会执行其他操作。这里的句号是强调类方法是一个完全包含的代码单元。它可以做任何内部需要做的事情。一般来说,一个人不需要关心它的内部(当然,除非这个人正在设计和编码这些内部构件),但我的观点是你需要在这里掌握两个不同的东西 - 第一个是这个函数在被引用时的作用来自外部的 - 这只是返回某个类的查找项。第二件事是内部,在作为静态函数时,它实例化了一些类对象,在我们的例子中是相同类型的对象 - 查找。 这个实例化是使用Yii的Active Record功能完成的 - “findAll()”方法,它将为您执行所需的SQL,并将找到的记录的结果集作为Lookup类型的实例化对象数组返回。
我希望这可以解决一些......