2017-02-24 79 views
0

失敗的消息,我需要驗證用戶的暱稱時,要登記簿在我proyect:沒有顯示從控制器

我的控制器

$inputData = Input::get('nickname'); 
     parse_str($inputData); 
     $informacion = array('nickname' => $inputData); 
     $regla = array('nickname'=>'required|unique:usuarios|alpha_num|min:6|max:15'); 
    if($request->ajax()){ 
     $usuarios = Usuarios::Usuarios(); 

     $validar = Validator::make($informacion,$regla); 
     if($validar->fails()){ 
      return Response()->json(array(
      'fail' => true, 
      'errors' => $validar->getMessageBag()->toArray())); 
     } 
     else{ 
      return Response()->json(array('success' => true, "message" => "Nombre de Usuario Disponible")); 
     } 
    } 

我的腳本

$("#validar").click(function(event) { 
    var dato = $('#nickname').val(); 
    var route = $('#form-sign-up').attr('action'); 
    var tipo = $('#form-sign-up').attr('method'); 
    var token = $('#form-sign-up #token').val(); 
    $.ajax({ 
     url: route, 
     headers: {'X-CSRF-TOKEN': token}, 
     type: tipo, 
     dataType: 'json', 
     data:{nickname: dato},}) 


     .fail(function(data){ 
      $('#nickname-msj').html(data.errors); 
      $('#nickname-msj').fadeIn(); 
     }) 
     .done(function(data) { 
      $('#nickname-msj').html(data.message); 
      $('#nickname-msj').fadeIn(); 
     }); 
}); 

.done作品,但是.fails不是,我需要將這些信息顯示給我的用戶,因爲他們可以知道什麼是公關如果有人能幫助我,那將會很棒。

我使用Laravel 5.2

謝謝。

+0

你可以使用'谷歌瀏覽器inspector'和頭部到網絡選項卡,並提交表單你會得到關於形式的響應。 –

回答

0

Ajax的失敗函數被觸發,其代碼與200不同。所以,你可以返回

if($validar->fails()) { 
    return response()->json($arrayHere, 400); //HTTP 400 error for bad request 
} 

所以,你的陣列後基本上只是添加400json()函數中。如果不指定代碼,則默認爲200

也許還可以改變你的ajax請求?或不

$.ajax({ 

     url: route, 
     headers: {'X-CSRF-TOKEN': token}, 
     type: tipo, 
     dataType: 'json', 
     data:{ 
      nickname: dato 
     }, 
     success: function (data) { 
      console.log(data); 
     }, 
     error: function (data) { 
      console.log('Error:', data); 
     } 
    });