У меня есть модель Expense
, в которой вы можете выбрать валюту для своих расходов. Расходы связаны с моделью Project
, и пользователь также может установить конкретную валюту для проекта. Например, у вас могут быть расходы в долларах США, даже если вы выставляете счет на проект в евро.
Поэтому я хочу при сохранении модели преобразовать расходы в "местную валюту" (валюту проекта).
Однако я столкнулся с тем, что при использовании события saving
(или даже saved
) для модели, которая еще не была сохранена, не получится получить валюту из отношения.
$project_currency = $model->project->currency;
Возвращает ErrorException: Trying to get property 'currency' of non-object
ExpenseController
выглядит следующим образом:
public function store(StoreExpenseRequest $request, Project $project)
{
$validated = $request->validated();
$expense = Expense::create( $validated );
$project->expenses()->save( $expense );
flash('Expense Saved')->success();
return redirect()->route('project.show', $project->id);
}