簡體   English   中英

Laravel使用Eloquent問題更新數據庫?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM