我有一段时间让我的协会在这里工作。每次我在事件控制器上运行视图操作,并使用var_dump,我只是回到事件信息,没有公司信息,就像它忽略了我的关联一样,更令人讨厌的是没有错误信息。
Events表有一个名为Company_ID的字段,Companies表有一个ID字段。 (是大写的Company_ID和ID)。
class Event extends AppModel{
public $name = "Events";
// public $belongsTo = 'Company';
public $belongsTo = array('Company'=>array(
'className' => 'Company',
'foreignKey'=>'Company_ID'
));
//public $hasOne = 'Company';
/*public $hasOne = array('Company'=>array(
'className' => 'Company',
'foreignKey'=>'Company_ID'
));*/
}
App::uses("AppModel", "Model");
class Company extends AppModel{
public $name = "Company";
}
呼叫控制器。
public function view() {
$id = $this->request->params['id'];
$this->set(
'event',
$this->Event->find(
'first',
array('conditions' => array('Event.id' => $id))
)
);
}
答案 0 :(得分:2)
可能的CakePHP副本不保存关联的模型。看这是迄今为止“为什么我的模型逻辑没有被执行”问题的最常见原因。
这是文件名,其中一些是复数形式与单数形式。我将Events.php更改为Event.php,将Companies.php更改为似乎可以解决问题的Company.php。
答案 1 :(得分:0)
请你试试以下内容:
这可能对您有所帮助
public $belongsTo = array('Company'=>array(
'className' => 'Company',
'foreignKey'=>'company_id'
));
由于