2013-04-10 65 views
0

什麼是正確的命名或我錯過了什麼讓automagic運行兩個名爲Model的單詞。實際模型屬於模型這兩個詞。正確的例子: 旅遊屬於住宿類型。 在數據庫中有表tours和表accommodation_types 旅遊的外鍵是tours.accommodation_type_id 以下代碼的快照。Cakephp自動填充表單選擇名爲belongsTo的兩個單詞模型

ToursController.php

public function add() { 
    //... 
    $accommodation_types = $this->Tour->AccommodationType->find('list'); 
    //... 
    $this->set(compact('accommodation_types', ...)); 
} 

Tour.php

//... 
public $belongsTo = array(
    //... 
    'AccommodationType' => array(
     'className' => 'AccommodationType', 
     'foreignKey' => 'accommodation_type_id', 
     'conditions' => '', 
     'fields' => '', 
     'order' => '' 
    ), 
    //... 
); 

旅遊/ add.ctp(一種形式的內部)

echo $this->Form->input('accommodation_type_id', array('label' => 'Accommodation type')); 

回答

1

按照慣例視圖瓦爾名稱應被駱駝劫持。因此,將視圖var從$accommodation_types重命名爲$accommodationTypes。如果你不遵守約定,你必須明確指定選項var使用像這樣:

echo $this->Form->input('accommodation_type_id', array('options' => $accommodation_types, 'label' => 'Accommodation type')); 
+0

謝謝你的工作。我知道選擇解決方法,但使用automagic會更好。 – Drobek 2013-04-10 12:54:11