Есть таблица вывода данных GridView, нужно сделать фильтр данных по условию: если в одной Модели1 значение записи равно значению записи в Модели2, то выводить записи в таблице. Модели никак не связаны между собой.
Т.е., получается, что нужно сравнить данные из двух несвязанных таблиц.
Как такое реализовать?
$models = Model1::find()
//...
->all();
$model2 = Model2::find()
->select(['column'])
//...
->asArray()
->column();
$model2 = array_flip($model2);
$models = array_filter($models, function($item) use ($model2) {
return array_key_exists($item['column'], $model2);
});
В итоге $models будет содержать только те элементы которые содержаться в $model2.
Но как вы собираетесь строить paging? Я бы использовал join в sql запросе чтобы отсечь все ненужные элементы ещё на уровне db.
Продвижение своими сайтами как стратегия роста и независимости