Laravel Nova - Обновление модели с помощью атрибута Accessor - PullRequest
0 голосов
/ 24 октября 2019

У меня есть модель Product, в этой модели у меня есть собственный аксессор getPriceAttribute, который возвращает объект Money.

public function getPriceAttribute($price): Money
{
    return new Money($price, new Currency($this->currency_code));
}

В nova я хочу обновить цену продукта в поле.

Text::make('Price', 'price')
    ->displayUsing(function ($price) {
        return $price->format();
    })
    ->resolveUsing(function ($price) {
        return $price->money->getAmount() / 100;
    })->fillUsing(function ($request, $model, $attribute, $requestAttribute) {
        $value = $request[$requestAttribute] * 100;
        $model->{$attribute} = $value;
    }),

При попытке обновить продукт в Nova я получаю сообщение об ошибке: 1007 * код валюты должен быть строкой . Это связано с тем, что в первом фрагменте кода $this->currency_code равно NULL, но я не знаю, почему.

Следует отметить, что цена правильно отображается в индексном и подробном представлении.

...