Ребят подскажите
public function getHistory()
{
return $this->hasOne(HistoryPacients::className(), ['id' => 'historyID']);
}
как вывести данные с условием поля таблицы history_pacients.status_id=3?
сделал return $this->hasOne(HistoryPacients::className(), ['id' => 'historyID'])->where(['status_id'=>3]);
Ноль реакции выводит все записи.
hasOne и where
Re: hasOne и where
andWhere? хотя у вас должна всего одна запись быть по связи hasOne...
-
- Сообщения: 109
- Зарегистрирован: 2017.06.22, 10:43
Re: hasOne и where
пробовал и andWhere и на hasMany менял...все равно выводит все записи,а мне нужны только поля со статусом 3
Re: hasOne и where
Приведите код, который использует getHistory().
-
- Сообщения: 109
- Зарегистрирован: 2017.06.22, 10:43
Re: hasOne и where
в контроллере через ActiveDataProvider передаю в GridView модель Napravlenie::find()
Модели Napravlenie() содержит связь getHistory(). Сейчас он выводит все направления, а мне нужны только те направления, где поля связанной таблицы history_pacients.status_id=3
Re: hasOne и where
Дак кто и как дергает getHistory()? Вам же верно написали, что связь через hasOne тупо не может вернуть несколько записей.
Гадалка подсказывает, что вы хотите:
Гадалка подсказывает, что вы хотите:
Код: Выделить всё
$models = Napravlenie::find()->innerJoinWith(['history h'], false)->andWhere(['h.status_id' => 3])->all(); // groupBy() если нужно