Laravel 更新模型而不是保存新的
Posted
技术标签:
【中文标题】Laravel 更新模型而不是保存新的【英文标题】:Laravel update model instead save new 【发布时间】:2019-03-06 22:33:53 【问题描述】:我使用的是 Laravel 5.1,我有这个代码:
$settings = new Setting;
$settings = $user->settings()->first();
$settings->user_id = $id;
$settings->save();
并且此代码更新user
模型并且不保存新的。如何保存 NEW 不更新?
【问题讨论】:
第二行的$user
是什么?
您的意思是要保存settings
模型吗?请添加完整代码。
@SundarBan $user = Auth::user();
@BharatGeleda 是的,我想保存设置模型
查看答案。那应该行得通。唯一的问题是您在第二行引用了现有的 Eloquent 模型。
【参考方案1】:
您需要更改要在其中获取设置的变量的名称,如下所示
$settings_old = $user->settings()->first();
$settings = $settings_old->replicate();
$settings->user_id = $id;
$settings->save();
【讨论】:
不工作...只是更新设置,不要在数据库中添加新行 我已经更新并使用了replicate()
方法。试试这个。以上是关于Laravel 更新模型而不是保存新的的主要内容,如果未能解决你的问题,请参考以下文章
使用 Laravel ORM 抽象保存新的不可为空的关系,而不会违反数据库完整性约束
Payum - Laravel 4 的包。如何使用 Eloquent 而不是 FilesystemStorage 创建模型数据?