以下是我的代码: -
$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));
但是限制与“资产”关系的“与”无关。如果我做错了什么。
提前致谢
答案 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
,它将始终适用于结果行的总数,因此在这种情况下,限制将应用于整个查询而不是相关模型。