繁体   English   中英

Yii范围相关模型

[英]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

在附件表中,我有: idparent_idfile_namemime_typestatuspromoted

您可以这样:

$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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM