我使用cakephp控制台生成一些CRUD操作。由于默认情况下未在控制器中加载关联模型的模型,因此生成的代码存在错误。
例如:
$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' => ''
),
);
答案 0 :(得分:1)
仔细查看您的代码:
public $belongsTo = array(
'Programs' => array(
'className' => 'Programs',
'foreignKey' => 'Programs_id',
'conditions' => '',
'fields' => '',
'order' => ''
),
关联和类名的别名都是复数,而这是可能的,很好,它违反了CakePHP约定。你正在尝试这个:
$programs = $this->Chantier->Program->find('list');
但请注意,您以单数形式编写程序,而不是在您的关联中声明的复数形式。我建议重新烘焙你的代码以遵循惯例,以避免未来的麻烦和混乱。