Yii отношения: получить данные из другой таблицы - PullRequest
0 голосов
/ 29 марта 2012

У меня есть стол Movie и таблица 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'),
    );
}

enter image description here

enter image description here

Индексы: enter image description here

Ответы [ 2 ]

2 голосов
/ 29 марта 2012

Вы можете получить все фильмы, которые имеют трейлер с этим:

$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;
}

Приветствие.

0 голосов
/ 17 апреля 2013

Существует еще один способ получения соответствующих данных

Шаг 1. Используйте инструмент yii gii для создания модели с установленным флажком Построить отношения.

Это автоматически сгенерирует код отношения ().

Шаг 2: Теперь, чтобы получить соответствующие данные, сделайте это

foreach($data as $d){
 $d->relationOne->name;
}

lationOne из метода отношений в вашем файле model.php

Я знаю, что это не лучший способ ответить, простите меня за это. Кроме того, gii - отличный способ построить отношения без каких-либо затруднений.

Я улучшу этот ответ. Позже

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...