Laravel - обновляет $ охраняемый массив на основе различных настроек - PullRequest
0 голосов
/ 24 сентября 2018

У меня есть одна модель, один контроллер и несколько конфигураций.

Если я нахожусь в конфигурации # 1, мои модели $guarded свойство должно быть

$guarded = ['foo', 'bar'];

Если я нахожусьconfig # 2 мои модели $guarded свойство должно быть только

$guarded = ['foo'];

Конфигурация загружена зависит от домена / субдомена.

В моем контроллере у меня есть функция импорта, которая принимает массивданных.Приблизительно 4 из этих полей должны быть в одной таблице, которая является общей для всех конфигов, а оставшиеся значения (которые являются переменными в зависимости от загруженной конфигурации) должны попадать в отдельную сводную таблицу.Таким образом, в одной конфигурации может быть 8 полей, а в другой может быть 9 или более / меньше.

Я пытался удалить переменные поля из вставки в первую таблицу, защищая что-то похожее на код здесь.После чего я беру переменные поля и вставляю в другую таблицу.

protected $guarded = ['some', 'common', 'guarded', 'fields'];

function __construct()
{
    $this->guarded = array_merge($this->guarded, config('custom_fields_for_domain'));
}

Хотя я могу dd($this->guarded) сразу после и правильно видеть поля переменных в модели, я получаю ошибки при попытке импорта вПервая таблица, так как она все еще пытается импортировать все переменные поля, а не только 4 или около того поля, которые я хочу.

Если я вручную добавлю все переменные поля, он будет работать нормально, поэтому кажется, что изменение $guarded даже в самом начале, как в конструкторе, не работает.Это правильно?Есть ли лучший способ изменить значения $guarded на основе различных конфигураций?

Я еще не пробовал, но было бы лучше использовать $fillable только для тех полей, которые, как я знаю, постоянны?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...