私は映画と映画館の上映時間ガイドに取り組んでいます。
ショータイムテーブル(写真#1)とタイムテーブル(写真#2)があります
このような映画ページに上映時間のある映画館のリストを表示する必要があります
シネマ名:Time1 - time2 - time3
グランド シネマ:** 00:18 - 00:20 - 00:22 .... ets
私のコードは機能しません..そして、これをビューファイルに表示するために何を書くことができますか
エラー: アクティブなレコード クラス "movie" のリレーション "cinemas" が正しく指定されていません: 外部キーで指定された結合テーブル "{{showtime}}" がデータベースに見つかりません。
映画モデルには次の関係があります。
'cinemas' => array(self::MANY_MANY, 'Cinema', '{{showtime}}(movie_id, cinema_id)')
シネマ モデルには次の関係があります。
'times' => array(self::MANY_MANY, 'Time', '{{showtime}}(cinema_id, time_id)')
シネマ モデルには名前付きのスコープが必要です:
public function times_by_movie($movie_id) {
return $this->with(
array(
'times'=>array(
'condition'=>'`movie_id` = :movie_id',
'params' => array(':movie_id'=>$movie_id),
'joinType' => 'INNER JOIN'
)
)
);
}
映画コントローラ > actionView
public function actionView($id) {
$movie = Movie::model()->with(
array(
'cinemas'=>array(
'scopes'=>array(
'times_by_movie'=>$id
)
)
)
)->findByPk($id);
if (!$movie)
throw new CHttpException(404, 'Movie not found.');
}