У меня есть модель 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, но я не знаю, почему.
Следует отметить, что цена правильно отображается в индексном и подробном представлении.