我使用Jeffrey Way的模型验证(https://github.com/JeffreyWay/Laravel-Model-Validation)来验证保存和更新。使用这种方法,假设您填写条目上的某些字段更新,然后调用save()
方法,验证将在当前条目上设置的所有字段上运行。但是,如果验证需要一个领域,比如说电子邮件地址,是唯一的,验证会因为它已经存在失败:Laravel验证差异更新和保存
user.php的:
protected static $rules = [
'email' => 'required|email|unique:users',
'firstname' => 'required',
'lastname' => 'required'
];
Controller.php这样:
// Get user from id
$user = User::find($id);
// Update user
$user->update($data);
// Validation when model is saved, via Way\Database\Model
if ($user->save())
{
return Response::json([
'data' => $user->toArray()
], 200);
}
if ($user->hasErrors())
{
return Response::json([
'errors' => $user->getErrors()
]);
}
由于电子邮件地址验证失败,将返回错误。所以,用这种方法,你如何告诉验证者忽略电子邮件的唯一规则?
这是完美的 - 工作正常。在你的代码中有一个“)”缺少,但是在'(empty($ rules)'后面。“感谢您的帮助! – babbaggeii 2014-11-06 10:42:41
不客气,它几乎与我目前使用的模型类似 - 其他的补充 - 所以我已经解决了这个问题,也许你可能对Ardent感兴趣(https://github.com/laravelbook/ardent),我正在使用这个,我修正了括号;-) – fmgonzalez 2014-11-06 12:05:13