我試圖弄清楚它是如何可能獲得在CakePHP中3.X嵌套子對象的值檢索嵌套推薦數據CakePHP中3.X
一個基本的例子包括三個實體:
服務器,機架,OPERATING_SYSTEM
表:
架 - ID,名稱
服務器 - ID,主機名,rack_id,operating_system_id
個Operating_systems - ID,名稱
機架式服務器的hasMany
服務器屬於關聯OperatingSystems &屬於關聯架
我怎麼能在我的機架視圖引用機架>服務器 - > OperatingSystem->的名字嗎?
//View.ctp
<?php foreach ($rack->servers as $servers):
echo h($servers->hostname)
echo h($servers->operating_system->name) //Doesn't output OS Name
endforeach; ?>
//View Function in RacksController:
public function view($id = null)
{
$rack = $this->Racks->get($id, [
'contain' => ['Servers']
]);
$this->set('rack', $rack);
$this->set('_serialize', ['rack']);
}
不知道這是否最終成爲控制器中的自定義查詢或者是否有內置的Cake語法來完成我所需的操作。謝謝你的幫助。
嗯在控制器中試過這個,最後得到:錯誤:不支持的操作數類型 –
在@aknd的解決方案中,需要將OperatingSystems放在另一個數組中(即''contains'=> ['Servers'= > ['OperatingSystems']]')。這將解決「不受支持的操作數類型」錯誤,並讓您使用數組表示法,該表示法可能比點表示法更清晰。 –