[英]Yii scope related models
我有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 'image/jpeg', 'image/gif', ...
) 以及它们的任何组合。 例如:第一个宣传和发布的图片
我猜最好的选择是这样做,而无需任何额外的查询,而只是过滤$model->attachments
,但是有可能吗?
编辑:
有一个pages
表和另一个attachments
表
在附件表中,我有: id
, parent_id
, file_name
, mime_type
, status
, promoted
您可以这样:
$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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.