【发布时间】:2018-07-03 21:06:14
【问题描述】:
我有一个 Laravel 5.6 项目,正在尝试从这样的表单更新帖子
<input name="email" type="text" class="form-control" placeholder="Email" value="{{$user->email}}" required>
在我的 PostsController 我有这个...
if($request->input('email')) {
$user->email = $request->input('email');
}
我希望它仅在表单中输入了新电子邮件时才更新电子邮件,但因为我预先填充了表单字段,它总是通过 IF。
有没有更多的 Laravel 方法来做到这一点?我看过 isDirty() 但我不确定它是否正确使用。
【问题讨论】:
-
if($request->input('email') && $user->email != $request->input('email'))有问题吗? -
你可以设置这个值在你的数据库中是唯一的并验证它
-
是的,你可以使用 isDIrty() 函数。
-
只有新值才保存,你想做什么?您已经在更新模型,并且电子邮件值不会改变,因为它是相同的值。