【发布时间】:2020-02-17 17:20:37
【问题描述】:
这是我的问题:我在 sqlserver 数据库中有一个表,如下所示:
Product (
id int identity,
reference varchar(12),
name varchar(40)
)
在 laravel 网络应用程序的网页中,我得到了一个仅以名称作为字段的表单和一个提交按钮。 在 DB 端,我创建了一个触发器(而不是插入),它根据生成的 id 更新行的引用。 示例:
RGX0000123
其中123是生成的ID,RGX是随机生成的。
流程遵循 Post/Redirect/Get 设计模式。提交后,我想重定向到引用显示在 URL 中而不是 ID 中的页面。
在 laravel 的控制器中,我用 Eloquent 保存我的对象并重定向到下一页:
$product->save();
return redirect()->route('next_page', ['reference' => $product->reference]);
我的问题是我可以在保存后获取 id 而不是引用。我不知道 Eloquent 是如何工作的,但是使用 Hibernate(JAVA) 可以通过 session.flush() 将对象与数据库中的数据同步来解决。
快速而肮脏的修复正在使用
$product= Product::find($product->id);
有没有更简洁的方法来处理这个问题?
【问题讨论】:
标签: php sql-server laravel eloquent orm