Как вернуть различные атрибуты инициализации объекта модуля, выполнив различные проверки значения различных полей запрашиваемой записи из таблицы.Я не могу сделать это в модели __constructor()
метод.См. Мой старый вопрос для более подробной информации.Например, у меня много разных типов постов, которые должны иметь разные атрибуты.В моей модели у меня есть поле type
, которое я должен обнаружить перед инициализацией и добавить необходимые атрибуты к ответу.
Я устал:
public function __construct() {
switch ($_GET['type']) {
case 'company':
$this->needs = [
'name',
'slogan',
'logo',
'location',
'contacts',
'employees',
'vacancy',
'skills'
];
$this->customWith = ['jobs', 'branches'];
break;
case 'vacancy':
$this->needs = [
'title',
'price',
'schedule',
'employment',
'experience',
'location',
'skills',
'company',
'date'
];
$this->customWith = ['company'];
break;
}
if(is_array($this->needs) && count($this->needs)) {
$this->appends = array_merge($this->appends, $this->needs);
$this->with = array_merge($this->with, $this->customWith);
}
}
Но это работает неправильно.Например, когда я запрашиваю тип записи vacancy
и массив $with
для активной загрузки, добавьте company
объект отношений, тогда company
объект также вернется с vacancy
атрибутами объекта.
Что вы посоветуете?Как правильно сделать так, чтобы для каждого типа поста возвращались разные атрибуты.