Я новичок в Yii2, и у меня проблема с моделью из более разных таблиц.
У меня есть 3 таблицы с другой структурой данных:
- JobOffer1 (Имя, ID, Дата, ...)
- JobOffer2 (JobName, StartDate, Location, ...)
- JobOffer3 (описание, начало)
ЦельМодель: Jobname
, StartDate
(присутствует во всех таблицах с разными столбцами)
Все еще существуют ограничения для всех запросов к таблицам.
JobController.php
...
// JobOffer1
$model = [];
$sql = "SELECT Name As Jobname, Date As StartDate
FROM JobOffer1,
Company1 cp1,
...
WHERE (cp1.availability IS NULL OR cp1.availability = 0)
AND ... ";
$JobOffer1 = JobOffer1::findBySql($sql)->all();
foreach ($JobOffer1 as $job) {
array_push($model, $job);
}
// JobOffer2
$sql = "SELECT JobName As Jobname, StartDate As StartDate
FROM JobOffer2,
TableXYZ xyz,
...
WHERE xyz.value > 100
AND ... ";
$JobOffer2 = JobOffer2::findBySql($sql)->all();
foreach ($JobOffer2 as $job) {
array_push($model, $job);
}
// JobOffer3
$sql = "SELECT description As Jobname, Start As StartDate
FROM JobOffer3,
$JobOffer3 = JobOffer3::findBySql($sql)->all();
foreach ($JobOffer3 as $job) {
array_push($model, $job);
}
$data = new ArrayDataProvider([
'allModels' => $model
]);
return $this->render('index', [
'data' => $data,
]);
В настоящее время я строю все в контроллере с Array
.Это работает, но это очень медленно.И я не могу фильтровать и искать массив данных в представлении.
Какое самое быстрое и лучшее решение?Моя идея состоит в том, чтобы создать JobModel путем сборки JobOffser1-3 (со всеми условиями).
Это была бы идея, и, возможно, у кого-то есть фрагмент для меня?!