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

在Yii中的模型/活动记录中搜索,yii,Yii,如果我有类似于: $posts = Post::model()->findAll(); 如何在$posts内按主键搜索帖子?(与运行单独的数据库查询相反,因为数据已经加载) 背景: 我正在根据模型的主键从外部源加载数据。因此,我运行一个查找来查找所有需要更新的模型,然后向外部源发出请求,并更新模型 结果(~100)作为未标记的对象数组(对象中的一个变量是主键)发回,因此似乎应该迭代该数组,然后更新已从数据库加载的现有模型上的值,然后保存每个项 我并不反对使用另一种方法来完成这一切,这似

如果我有类似于:

$posts = Post::model()->findAll();
如何在$posts内按主键搜索帖子?(与运行单独的数据库查询相反,因为数据已经加载)


背景:

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

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


我并不反对使用另一种方法来完成这一切,这似乎是最容易维护的方法

我想简单地在所有帖子中循环是一种选择:

 for($posts as $post){
      if($post->pk=='pk')
         //do staff...
 }
或者,如果可能,最好:

$post=Post::model()->findByPK('pk');

我想简单地循环浏览所有帖子是一种选择:

 for($posts as $post){
      if($post->pk=='pk')
         //do staff...
 }
或者,如果可能,最好:

$post=Post::model()->findByPK('pk');
数组_过滤器()

SJFriedl的赞美之词

数组_filter()


SJFriedl的赞美有点模糊,但我认为这可能对您有好处:有一种方法可以告诉yii,当它使用findAll()加载记录时(就像您所做的那样),使用特定列作为数组元素的键返回对象数组。请确保使用唯一的列,否则可能会覆盖数组元素。
在中搜索“索引”。我没有现成的示例代码提供给您。

答案有点模糊,但我认为这可能对您有好处:有一种方法可以告诉yii,当它使用findAll()加载记录时(就像您那样),使用特定列作为数组元素的键返回对象数组。请确保使用唯一的列,否则可能会覆盖数组元素。
在中搜索“索引”。我没有现成的示例代码提供给您。

这意味着我需要迭代每个项目的结果数组和模型数组,而不是两个数组中有一个已有索引。实际上,我已经迭代了一次模型以生成外部请求,我可以为那里的模型数组创建一个反向查找索引。谢谢这意味着我需要迭代每个项目的结果数组和模型数组,而不是两个数组中有一个已有索引。实际上,我已经迭代了一次模型来生成外部请求,我可以在那里为模型数组创建一个反向查找索引。谢谢