在php控制台生成的代码中未加载关联模型
我使用cakephp控制台生成了一些CRUD操作。生成的代码有缺陷,因为默认情况下没有在控制器中加载关联模型的模型 例如:在php控制台生成的代码中未加载关联模型,php,cakephp,cakephp-2.1,Php,Cakephp,Cakephp 2.1,我使用cakephp控制台生成了一些CRUD操作。生成的代码有缺陷,因为默认情况下没有在控制器中加载关联模型的模型 例如: $programs = $this->Chantier->Program->find('list'); 不起作用,但: $this->loadModel('Program'); $programs = $this->Program->find('list'); 会的。 以下是协会的代码: /** * belongsTo associa
$programs = $this->Chantier->Program->find('list');
不起作用,但:
$this->loadModel('Program');
$programs = $this->Program->find('list');
会的。
以下是协会的代码:
/**
* belongsTo associations
*
* @var array
*/
public $belongsTo = array(
'Programs' => array(
'className' => 'Programs',
'foreignKey' => 'Programs_id',
'conditions' => '',
'fields' => '',
'order' => ''
),
'Etats' => array(
'className' => 'Etats',
'foreignKey' => 'Etats_id',
'conditions' => '',
'fields' => '',
'order' => ''
),
'Types' => array(
'className' => 'Types',
'foreignKey' => 'Types_id',
'conditions' => '',
'fields' => '',
'order' => ''
),
'ChampsLibres' => array(
'className' => 'ChampsLibres',
'foreignKey' => 'Champs_libres_id',
'conditions' => '',
'fields' => '',
'order' => ''
),
);
仔细查看您的代码:
public $belongsTo = array(
'Programs' => array(
'className' => 'Programs',
'foreignKey' => 'Programs_id',
'conditions' => '',
'fields' => '',
'order' => ''
),
关联的别名和类名都是复数形式,虽然这是可能的,但它违反了CakePHP约定。您正在尝试以下操作:
$programs = $this->Chantier->Program->find('list');
但请注意,您编写的程序是单数形式的,而不是在您的协会中声明的复数形式。我建议按照惯例重新烘焙代码,以避免将来的麻烦和混乱。由于stackoverflow需要更少的代码,一些关联被删除。