我有一个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);
}发布于 2019-11-07 02:33:26
我刚刚找到了答案。我在ExpenseController上编辑了store方法,如下所示:
public function store(StoreExpenseRequest $request, Project $project)
{
$validated = $request->validated();
$expense = new Expense( $validated );
$project->expenses()->save( $expense );
flash('Expense Saved')->success();
return redirect()->route('project.show', $project->id);
}然后saving事件就起作用了。
https://stackoverflow.com/questions/58735225
复制相似问题