我正在尝试使用Laravel isDirty()
来帮助我只获取修改后的值,
但是当我尝试使用时会出现问题,它总是return false
public function update(Request $request, $id) { $client = Client::find($id); dd($client->isDirty('name')); }
总是return false
。
答案 0 :(得分:3)
它返回false
,因为您没有完成任何内容到$client
。
因此,它不是“脏” - 它是“干净的”。
如果您执行$client->name = str_random(40);
之类的操作,它就会变脏。
答案 1 :(得分:1)
要仅获取已修改的属性,您需要使用getDirty()
方法。 isDirty()
仅显示是否有任何已修改的属性:
$client = Client::find($id);
$client->name = 'Some New Name';
$modifiedAttributes = $client->getDirty();
如果您想检查是否在提交的表单中修改了任何属性,您可以这样做:
if ($client->name === $request->name)