*编辑/更新*
我找到了一个解决方案,但真的不知道为什么会这样。如果有人能回答为什么会这样,那就太好了。
我发现当我将“floorplan_id”添加到 MoveInHome 的字段列表中时,MediaFloorplan 会显示在我的数据中,因为 MoveInHome 有很多楼层平面图。奇怪,因为在包含的“平面图”的字段中找到了“id”
*结束编辑/更新*
我正在为家庭建筑商开发一个项目,并且在通过可包含获取一些数据时遇到问题。
应用模型有这个:
public $actsAs = array("Containable");
我正在从 FloorplansController 调用 MoveInHome 模型
$this->loadModel("MoveInHome");
$moveInReadyData = $this->MoveInHome->getByCommunity($communityid,4);
MoveInHome 属于楼层平面图
平面图有许多媒体平面图
这是模型中的函数:
public function getByCommunity($id,$limit=4) {
$params = array(
"fields" => array(
"address",
"city",
"state",
),
"conditions" => array(
"MoveInHome.community_id" => $id,
"MoveInHome.active" => 1,
"MoveInHome.sold" => 0
),
"limit" => $limit,
"order" => "RAND()",
"contain" => array(
"MediaMoveInHome" => array(
"order" => array(
"featured" => "DESC"
),
"fields" => array(
"media_move_in_home_file_path",
),
"limit" => 1,
),
"Floorplan" => array(
"fields" => array(
"id",
"name",
"style",
"bedrooms",
"bathrooms",
"sf_bsmt",
"sf_1flr",
"sf_2flr"
),
"MediaFloorplan" => array(
"conditions" => array(
"MediaFloorplan.type" => "main",
),
"fields" => array(
"id",
"media_floorplan_file_path"
)
)
)
)
);
return $this->find("all", $params);
}
除了 MediaFloorplan 根本没有返回之外,所有数据都可以正常返回。请注意,我在网站的其他区域提出了类似的包含请求。问题是否源于从 FloorplansController 向 MoveInReady 发出请求并试图包含 Floorplan 等?
谢谢您的帮助。