在Yii中搜索模型/活动记录

时间:2011-12-19 18:54:19

标签: yii

如果我有类似的话:

$posts = Post::model()->findAll();

如何在$ posts内搜索主键的帖子? (与已经加载数据的运行单独的数据库查询相反)


背景

我正在根据模型的主键从外部源加载数据。因此,我运行查找以查找需要更新的所有模型,然后向外部源发出请求,并更新模型。

结果(~100)作为未标记的对象数组发回(对象中的一个变量是主键),因此迭代该数组似乎是合适的,然后更新现有模型上的值我已经从数据库加载然后保存每个项目。

我并不反对使用其他方法来完成所有这些,这似乎是最易于维护的方法。

3 个答案:

答案 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)

array_filter()

http://php.net/manual/en/function.array-filter.php

赞美SJFriedl