Выберите связанные строки в Yii2 - PullRequest
0 голосов
/ 10 марта 2019

У меня есть связанные таблицы (у таблицы train_schedule естьpartute_station_id ил*

В классе TrainSchedule:

 /**
     * @return \yii\db\ActiveQuery
     */
    public function getArrivalStation()
    {
        return $this->hasOne(Station::className(), ['id' => 'arrival_station_id']);
    }

И

  /**
     * @return \yii\db\ActiveQuery
     */
    public function getDepartuteStation()
    {
        return $this->hasOne(Station::className(), ['id' => 'departute_station_id']);
    }

Ошибка:

Имена отношений чувствительны к регистру.Приложение \ models \ TrainSchedule имеет отношение с именем "ArrivalStation" вместо "ArrivalStation".

Как получить данные из связанных таблиц?

1 Ответ

3 голосов
/ 10 марта 2019

Вы правильно определили свои отношения, но неправильно их называете.Ваше отношение

  • getArrivalStation должно быть указано как arrivalStation
  • getDepartuteStation() должно быть departuteStation

при указании в joinWith, и вам нужно предоставить array, если вам нужно указать несколько отношений при вызове joinWith, так как в настоящее время ваш второй вызов ->joinWith('getDepartuteStation()') переопределяет предыдущий ->joinWith('getArrivalStation').

Таким образом, запрос должен выглядеть следующим образом:

$trainsTchedule = TrainSchedule::find()
    ->joinWith(['arrivalStation','departuteStation'])
    ->all();

Вы должны прочитать о Работа с реляционными данными

...