我有Page
模型HAS_MANY
Attachment
在页面模型中:
public function relations()
{
return array(
'attachments'=>array(self::HAS_MANY, 'Attachment', 'parent_id'),
)
}
我正在寻找一种方法来对这些附件进行一些范围界定。
在PageController
我有:
$model = Page::model()->with(array('attachments'))->findByAttributes(array('slug' => $slug))
例如,在页面视图中,我想:
$model->attachments
(这很好用),但我也需要:status
= 1)promoted
= 1)mime_type
in_array 'image/jpeg', 'image/gif', ...
)以及它们的任何组合。例如:第一个推广和发布的图像
我想最好的选择是在没有任何额外查询的情况下执行此操作,只过滤$model->attachments
,但这可能吗?
编辑:
有一个pages
表和另一个attachments
表
:id
,parent_id
,file_name
,mime_type
,status
,promoted
答案 0 :(得分:1)
$posts=Post::model()->with(array(
'comments'=>array(
'scopes'=>array('recently','approved')
),
))->findAll();
// or since 1.1.7
$posts=Post::model()->findAll(array(
'with'=>array(
'comments'=>array(
'scopes'=>array('recently','approved')
),
),
));
http://www.yiiframework.com/doc/guide/1.1/en/database.arr#relational-query-with-named-scopes