我有电影桌& TblMovieVideos表和我有这个表的关系,所以我需要得到“youtube_id”形式TblMovieVideos其中“trailer = 1”
我认为我需要通过此代码获得结果,但这是错误的
错误:$model->tblMovieVideos[$model->id]->trailer = 1 ->youtube_id
??????
(已附加数据库图片)
电影型号:
public function relations()
{
// NOTE: you may need to adjust the relation name and the related
// class name for the relations automatically generated below.
return array(
'tblCinemaMovies' => array(self::HAS_MANY, 'TblCinemaMovies', 'movie_id'),
'tblDays' => array(self::HAS_MANY, 'TblDay', 'movie_id'),
'tblGenres' => array(self::HAS_MANY, 'TblGenre', 'movie_id'),
'tblMoviePhotos' => array(self::HAS_MANY, 'TblMoviePhoto', 'movie_id'),
'tblMovieVideos' => array(self::HAS_MANY, 'TblMovieVideo', 'movie_id'),
'tblShowtimes' => array(self::HAS_MANY, 'TblShowtime', 'movie_id'),
);
}
TblMoviesVideos模型:
public function relations()
{
// NOTE: you may need to adjust the relation name and the related
// class name for the relations automatically generated below.
return array(
'movie' => array(self::BELONGS_TO, 'TblMovie', 'movie_id'),
'tblSpotlights' => array(self::HAS_MANY, 'TblSpotlight', 'video_id'),
);
}
索引:
答案 0 :(得分:2)
你可以通过以下方式获得所有带预告片的电影:
$movies=Movie::model()->with(array('tblMovieVideos'=>array('condition'=>'trailer = 1')))->findAll();
但是你想要的是youtube_id
,试试这个:
$id = 1;//Id of the movie for which you are trying to find the video
$videos = TblMoviesVideos::model()->findAllByPk($id, 'trailer = 1');
foreach ($videos as $video)
{
echo $video->youtube_id;
}
干杯。
答案 1 :(得分:0)
还有另一种获取相关数据的方法
步骤1:使用yii gii工具生成带有选中的Build relation复选框的模型。
这将自动生成relation()代码。
步骤2:现在获取关联数据执行此操作
foreach($data as $d){
$d->relationOne->name;
}
relationOne来自model.php文件中的关系方法
我知道这不是一个很好的回答方式,请原谅我。 gii也是一个很好的建立关系,没有任何困难。
我会改进这个答案。后