Вернуть разные атрибуты, проверив значение поля перед инициализацией объекта модели? - PullRequest
0 голосов
/ 30 мая 2019

Как вернуть различные атрибуты инициализации объекта модуля, выполнив различные проверки значения различных полей запрашиваемой записи из таблицы.Я не могу сделать это в модели __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 атрибутами объекта.

Что вы посоветуете?Как правильно сделать так, чтобы для каждого типа поста возвращались разные атрибуты.

...