2015-08-12 3 views
0

в моей форме обновления профиля У меня есть полное имя пароля и поля подтверждения пароля. в настоящее время мои проверки действительны только для пустых полей и несоответствия пароля. но как я могу добавить проверки паролей символов также? пароль должен быть минимальным: 5 и не более 15 символов.Форма проверки laravel 5

пожалуйста совет.

public function changePasswordPost() 
{ 
    $user = Auth::user(); 

    if (Input::get('password')) { 
     if (Input::get('password') !== Input::get('confirm_password')) { 

      return Redirect::route('admin-change-password')->with('error', 'Password field is not identical to Confirm Password.'); 
     } 


     $user->update(); 

     return Redirect::route('admin-change-password')->with('success', 'You have successfully updated login details.'); 
    } 

    return Redirect::route('admin-change-password')->with('error', 'Input Missing'); 
} 
+0

Для этого необходимо использовать [Класс проверки Laravel] (http://laravel.com/docs/5.1/validation). –

ответ

1

Вам нужно сделать что-то вроде этого:

use Validator; 

public function changePasswordPost(Request $request) 
{ 
    $user = Auth::user(); 

    if ($request->get('password')) { 
     if (($request->get('password') !== $request->get('confirm_password')) || 
      (Validator::make($request->all(), ['password' => 'min:5|max:15'])->fails())) { 

      return redicrect()->route('admin-change-password')->with('error', 'Password field is not identical to Confirm Password.'); 
     } 


     $user->update(); 

     return redirect()->route('admin-change-password')->with('success', 'You have successfully updated login details.'); 
    } 

    return redirect()->route('admin-change-password')->with('error', 'Input Missing'); 
} 

Я не проверял этот код, но дело в том, что вам нужно использовать класс Validator от Laravel. Обратите внимание, что я изменил некоторые вещи, чтобы использовать дружественный API laravel-5.1.

Обратите внимание, что вы можете получить более чистый код, добавив валидацию, прежде чем что-либо сделать. Что-то вроде этого:

public function changePasswordPost(Request $request) 
{ 
    /** 
    * This basically captures your password matching 
    * and password length cases in a compact way so 
    * you don't need all the if statements. 
    */ 
    $validation = Validator::make($request->all(), 
     ['password' => 'required|min:5|max:15', 
     'confirm_password' => 'required|same:password']); 

    if ($validation->fails()) 
    { 
     response()->redirect('admin-change-password')->with('error', 'bad input'); 
    } 

    /** 
    * Here you do the rest of the processing like updating the database. 
    */ 
} 
+1

Хороший пример, но я бы рекомендовал установить «мин: 8» и оставить «макс». – martinstoeckli

Смежные вопросы