在php控制台生成的代码中未加载关联模型

在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

我使用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' => ''
    ),


);

仔细查看您的代码:

public $belongsTo = array(
'Programs' => array(
    'className' => 'Programs',
    'foreignKey' => 'Programs_id',
    'conditions' => '',
    'fields' => '',
    'order' => ''
),
关联的别名和类名都是复数形式,虽然这是可能的,但它违反了CakePHP约定。您正在尝试以下操作:

$programs = $this->Chantier->Program->find('list');

但请注意,您编写的程序是单数形式的,而不是在您的协会中声明的复数形式。我建议按照惯例重新烘焙代码,以避免将来的麻烦和混乱。

由于stackoverflow需要更少的代码,一些关联被删除。