[英]Laravel Update Database with Eloquent Issue?
我似乎對eloquent的驗證方法有一個問題,它返回的應該與它應該的相反。
這是我的驗證調用,它應該失敗,因為電子郵件是重復的,並且名字只有1個字符,當最低要求是2時。
// Handle the submission of changed user details.
public function put_settings()
{
$id = Input::get('id');
$validation = Account::validate(Input::all());
if($validation->fails())
{
return Redirect::to_route('settings')->with_errors($validation)->with_input();
}
else
{
Account::update($id, array(
'first_name' => Input::get('first_name'),
'last_name' => Input::get('last_name'),
'email' => Input::get('email')
));
return Redirect::to_route('settings');
}
}
這是我的驗證規則驗證方法(位於我的模型中):
public static function validate($data)
{
$rules = array(
'first_name' => 'required|min:2|max:80',
'last_name' => 'required|min:2|max:80',
'email' => 'required|min:5|max:180|unique:users',
);
return Validator::make($data, $rules);
}
為什么這會更新我的數據庫,即使它在驗證時失敗。 嘗試使用fail()和pass()方法,它們似乎與它們應該是相反的。 有任何想法嗎?
您是否嘗試調試輸入並查看實際提交的內容?
此外,您可能需要檢查auth.php ,看看您是否選擇了電子郵件作為用戶的用戶名 。 這樣,如果你調用unique:users
那么Laravel
會查看email列而不是username列 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.