Задать вопрос
nskarl
@nskarl
Вообще дизайнер

Можно ли как-то сделать проверку в relation yii2 на индекс?

привет!

есть у меня запрос, в котором есть связи: ->with(['one', 'two'])
и код для них:
public function getOne() {
	return $this->hasOne(One::classname(), ['id' => 'one']);
}
public function getTwo() {
	return $this->hasOne(Two::classname(), ['id' => 'two']);
}


Но проблема в том, что индексы one и two есть не в каждой строчке результата запроса
т.е. массив данных изначальный может быть таким:
[
	0 => [
		'id' => 1,
		'one' => 10,
	]
	
	1 => [
		'id' => 2,
		'two' => 12,
	]
	
	2 => [
		'id' => 3,
		'two' => 25,
	]
]


можно конечно вставить пустые индексы задолго до этой выборки, но в будущем таких индексов может стать больше
есть ли возможность как-то в relation проверить существует ли данный индекс?
Что-то вроде
if(!isset($this->one))
	return false;

return $this->hasOne(One::classname(), ['id' => 'one']);


Кто-нибудь сталивался с подобным?
  • Вопрос задан
  • 170 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
slo_nik
@slo_nik Куратор тега Yii
Доброй ночи.
Возможно это Вам подойдёт
return $this->hasOne(One::classname(), ['id' => 'one'])->andWhere([*****]);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы