如果我有类似的话:
$posts = Post::model()->findAll();
如何在$ posts内搜索主键的帖子? (与已经加载数据的运行单独的数据库查询相反)
背景
我正在根据模型的主键从外部源加载数据。因此,我运行查找以查找需要更新的所有模型,然后向外部源发出请求,并更新模型。
结果(~100)作为未标记的对象数组发回(对象中的一个变量是主键),因此迭代该数组似乎是合适的,然后更新现有模型上的值我已经从数据库加载然后保存每个项目。
我并不反对使用其他方法来完成所有这些,这似乎是最易于维护的方法。
答案 0 :(得分:3)
我想简单地遍历所有帖子都是一个选择:
for($posts as $post){
if($post->pk=='pk')
//do staff...
}
或者,如果可能,这是可取的:
$post=Post::model()->findByPK('pk');
答案 1 :(得分:1)
一个模糊的答案,但我认为它可能对你有好处:有一种方法告诉yii当它使用findAll()加载记录时(就像你一样),使用特定的列返回对象数组作为数组元素的键。一定要使用一个独特的列,否则你可能会覆盖数组元素.... 在this link中搜索“index”。我没有现成的示例代码给你。
答案 2 :(得分:0)