我有一个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()了,但是我不确定它是否正确。
答案 0 :(得分:3)
save()方法将检查模型中的某些内容是否已更改。如果没有更改,它将不会运行数据库查询。因此,您无需为此显式编写代码。 仍然,如果您想使用isDirty方法,可以编写如下内容
if($test->isDirty()){
// changes have been made
}
或者如果您要检查某个属性:
if($test->isDirty('email')){
// email has changed
}