我试图使用模型的afterFind方法
public function afterFind() {
$group = GroupMember::findOne(1);;
Yii::info($group->id);
parent::afterFind();
}
错误是
尝试获取非对象的属性
我发现findOne返回一个包含列值的数组。
我的问题是我做错了什么,或者只是在找到这个之后?
感谢。
答案 0 :(得分:1)
查看文档,findOne()无法返回数组。
最有可能记录id = 1
dosn,并且您获得null
。 afterFind()
与此无关。
答案 1 :(得分:1)
@Awesome AP - 这不是紧急语法错误(使用&#34 ;;;")
@arogachev - 在文档中有说
通过主键或a返回单个活动记录模型实例 列值数组
它确实给我一个阵列,但我不知道为什么。
幸运我按$group = GroupMember::find(1)->one();
解决了这个问题。
但坦克你们都帮助我。
答案 2 :(得分:0)
这个问题已经很老了,但是arogachev是正确的。 findOne返回ActiveRecord或Null,则返回null 关于文档,您阅读了方法说明,而不是方法返回的内容,只是走到最后,发现:
返回静态值| null
符合条件的ActiveRecord实例;如果没有匹配项,则为null。
说明: 通过主键或列值数组返回单个活动记录模型实例。 该短语不是很清楚,但是它意味着您可以将ID或列名=>值的数组作为查询过滤器传递给查询过滤器。从2.0.37版本开始,可以传递表达式