首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >包含关系数据的模型事件

包含关系数据的模型事件
EN

Stack Overflow用户
提问于 2019-11-07 01:05:34
回答 1查看 32关注 0票数 0

我有一个Expense模型,你可以选择你的费用是哪种货币。费用与Project模型相关,用户还可以为项目设置特定的货币。例如,即使您用欧元为项目开具发票,您也可以用美元支付费用。

因此,我希望在保存模型时将费用转换为“本地货币”(项目货币)。

但是,我发现当在尚未实际保存的模型上使用saving (甚至saved)事件时,从关系中获取货币将不起作用。

代码语言:javascript
复制
$project_currency = $model->project->currency;

这将返回ErrorException: Trying to get property 'currency' of non-object

ExpenseController如下所示:

代码语言:javascript
复制
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);
}
EN

回答 1

Stack Overflow用户

发布于 2019-11-07 02:33:26

我刚刚找到了答案。我在ExpenseController上编辑了store方法,如下所示:

代码语言:javascript
复制
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事件就起作用了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58735225

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档