*編集/更新*
私は解決策を見つけましたが、なぜこれが必要なのか本当にわかりません。これがなぜなのか誰かが答えられたら、それは素晴らしいことです。
MoveInHome のフィールド リストに「floorplan_id」を追加すると、MediaFloorplan がデータに表示されることがわかりました。MoveInHome には多くのフロアプランがあります。含まれている「Floorplan」のフィールド内に「id」が見つかったため、奇妙です
*編集/更新の終了*
私は住宅建設業者のプロジェクトに取り組んでおり、containable を介してデータを取得する際に問題が発生しています。
アプリモデルにはこれがあります:
public $actsAs = array("Containable");
FloorplansController から MoveInHome モデルへの呼び出しを行っています
$this->loadModel("MoveInHome");
$moveInReadyData = $this->MoveInHome->getByCommunity($communityid,4);
MoveInHome belongsTo フロアプラン
フロアプランには多くのメディアがありますフロアプラン
モデル内の関数は次のとおりです。
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 を含めようとすることなどに起因しますか?
助けてくれてありがとう。