Сохранение $ моделей оригинальных атрибутов - PullRequest
0 голосов
/ 06 января 2020

Как изменить атрибуты $model на оригинальные. В моем файле поля nova, внутри fillAttributeFromRequest, если запрос hasSomeValue, я пытаюсь изменить мои атрибуты $ model обратно на оригинальные. Это будет в основном применяться, когда пользователь редактирует ранее существующий ресурс, который он создал.

protected function fillAttributeFromRequest(NovaRequest $request, $requestAttribute, $model, $attribute)
{
    if ($request->hasSomeValue) 
    {
       Resource::createNew($model);
       //need to change $model back to original
    }
}

Я пробовал $model->fill($model->getOriginal());, но это выдает ошибку, потому что некоторые поля не заполняются.

Я также не могу сделать $model->name => $model->getOriginal()->name; etc, потому что это пакет, и поля будут отличаться для каждого пользователя.

Рабочим решением может быть не вызов метода static::saving() модели, а убежище не понял как это сделать.

1 Ответ

0 голосов
/ 06 января 2020

Можно ли удалить незаполняемые элементы из массива $originals?

Например:

//todo: set fillables array to public
$fillableProperties = $model->fillables; 

// filter non-fillable properties
$originalFillables = array_filter(
    $model->getOriginal(),
    function ($key) use ($fillableProperties ) {
        return in_array($key, $fillableProperties );
    },
    ARRAY_FILTER_USE_KEY
);

$model->fill($originalFillables);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...