以下の2つのスニップから推測できるように、パーツの詳細を表示するときにカテゴリテーブルを参照します。
パーツモデル:
public function relations() {
return array(
'category' => array(self::BELONGS_TO, 'Category', 'fid_caty2') );
}
カテゴリモデル:
public function relations() {
return array('part' => array(self::HAS_MANY, 'Part', 'fid_caty2') );
}
ビューで参照される値をレンダリングするこの方法を学びました。
echo CHtml::encode($data->category->name_caty2);
他にもいくつかの方法を見つけましたが、それらはすべてビューで行われます。モデルは関係を設定するので、なぜ参照値をモデルのに含めるべきではないのCActiveRecord
ですか?これはまさに私たちがモデルのために予約した種類のクランチだと思いました。ビューでそれを解決することは奇妙に思えます、そして多くの余分な仕事。
私が正しい場合、モデルビューでそれを機能させるにはどうすればよいですか?または、MVCの理解に修正が必要ですか?
これはどう
public function loadModel($id)
{ $model=Part::model()->findByPk($id);
if($model===null)
throw new CHttpException(404,'The requested page does not exist.');
return $model;
}
これがコントローラーページにあります。ロード時に参照値をモデルに忍び込ませることはできますか?