我使用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