У меня есть одна модель, один контроллер и несколько конфигураций.
Если я нахожусь в конфигурации # 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
только для тех полей, которые, как я знаю, постоянны?