限制不适用于急切加载YII的方法

时间:2014-07-30 17:39:31

标签: php yii

以下是我的代码: -

$model = new Library;

$libraries = $model->with(array(
    "assetFolders" => array(
                        "condition" => "parent_id = 0",
                        "order" => "assetFolders.sequence asc",
                        "with" => array("assets" => array("condition" => "folder_id = 153", "limit" => 50))
            )
            )->findAll("owner = :owner and parent_id = :parent_id", array(":owner" => $user_id, ":parent_id" => 0));

但是限制与“资产”关系的“与”无关。如果我做错了什么。

提前致谢

1 个答案:

答案 0 :(得分:0)

我认为你不能:

在数据库条件中指定with时,您可能会要求Yii使用连接执行SQL查询。

所以你要求会像

一样
SELECT library.*, assetFolders.*, assets.*
FROM library, assetFolders, assets
WHERE  library.id = assetFolders.id_library AND assetFolders.id=assets.id_folder
    AND library.owner = :user_id AND library.parent_id = :parent_id

我不知道您的列,所以这是一个近似的请求。 (顺便说一下assetFolders中的条件不需要,它已经应用于findAll

此查询将返回有多行已有资产,然后Yii将处理结果以设置库,相关assetFolders和相关资产

如果您指定LIMIT,它将始终适用于结果行的总数,因此在这种情况下,限制将应用于整个查询而不是相关模型。