-1

私は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' => ''
    ),


);
4

1 に答える 1

1

コードをよく見てください。

public $belongsTo = array(
'Programs' => array(
    'className' => 'Programs',
    'foreignKey' => 'Programs_id',
    'conditions' => '',
    'fields' => '',
    'order' => ''
),

アソシエーションのエイリアスとクラス名はどちらも複数形ですが、これは可能で問題ありませんが、CakePHPの規則に反します。あなたはこれを試しています:

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

ただし、協会で宣言されているように、プログラムを複数形ではなく単数形で書いたことに注意してください。将来の頭痛や混乱を避けるために、規則に従うようにコードを再ベイクすることをお勧めします。

于 2012-08-03T08:02:11.343 に答える