私は個人的なプロジェクトの開発中です。CakePHP bindModel作業中、モデル結合なし
「ショー」と「エピソード」の2つのモデルがあります。私は1つのコントローラ 'Ops'を持っています。
ショーモデル:
class Show extends AppModel
{
var $name = 'Show';
var $hasMany = array(
'Episode' => array(
'className' => 'Episode',
'foreignKey' => 'show_id'
)
);
}
エピソードモデル:
class Episode extends AppModel
{
var $name = 'Episode';
var $belongsTo = array(
'Show' => array(
'className' => 'Show',
'foreignKey' => 'show_id'
)
);
}
オプスコントローラ:
class OpsController extends AppController
{
var $name = 'Ops';
var $uses = array('Show','Episode');
function index()
{
$episodes = $this->Episode->find('all',array(
'limit' => 10,
'order' => array('Episode.first_aired' => 'DESC'),
)
);
debug($this->Episode);
debug($episodes);
}
}
オプスコントローラを実行している場合は、私がしたいように、私は 'エピソード' レコードを取得しますが、 'belongsTo'設定の 'show_id'に基づいて関連する 'Show'レコードを取得しないでください。要求がまだ進行しているモデルクラスを意図的に破ることができるので、モデルを全く参照していないようです。この作品ながら、今
$this->Episode = ClassRegistry::init('Episode');
$this->Episode->bindModel(
array('belongsTo' => array(
'Show' => array(
'className' => 'Show'
)
)
)
);
:
、チェックをたくさんやって研究、およびテストの後、私は、find()要求の前オプスコントローラに以下を追加することで動作するようにそれを得ることができました私はまだ私のモデルが適切に呼び出されていない理由を知りたいです。どんな助けでも大歓迎です。ありがとう!
ええ、私はフィールドの種類をダブルチェックして正しく設定されています。私はまた、同じ結果を使用して 'foreignKey'設定を使用せずに試してみました。私が扱っている主な問題は、$ uses変数を使うときにモデルクラスがインクルードされないことです。私は意図的に私のモデルにエラーを入れました。そして、それらを使用するコントローラはエラーではありません。 –