2016-11-04 6 views
1

5.3私は、メソッドのaddItemを持って、私は私のOrganisationsControllerでLaravel 5を使用しています

public function addItem(Request $request) 
 
    { 
 
     $rules = array(
 
      'nom' => 'required', 
 
     ); 
 
     // for Validator 
 
     $validator = Validator::make(Input::all(), $rules); 
 
     if ($validator->fails()) 
 
      return Response::json(array('errors' => $validator->getMessageBag()->toArray())); 
 

 
     else { 
 
      $section = new Section(); 
 
      $section->nom = $request->nom; 
 
      $section->save(); 
 
      return response()->json($section); 
 
     } 
 
    }

Ajaxコード

$("#add").click(function() { 
 
      $.ajax({ 
 
       type: 'post', 
 
       url: '/addItem', 
 
       data: { 
 
        '_token': $('input[name=_token]').val(), 
 
        'nom': $('input[name=nom]').val() 
 
       }, 
 
       success: function(data) { 
 
        if ((data.errors)) { 
 
         $('.error').removeClass('hidden'); 
 
         $('.error').text(data.errors.title); 
 
         $('.error').text(data.errors.description); 
 
        } else { 
 
         $('.error').remove() 
 
         $('table').append("<tr class='section" + data.id + "'><td>" + data.id + "</td><td>" + data.nom + "</td><td><button class='edit-modal btn btn-info' data-id='" + data.id + "' data-nom='" + data.nom + "'><span class='glyphicon glyphicon-edit'></span> Edit</button> <button class='delete-modal btn btn-danger' data-id='" + data.id + "' data-nom='" + data.nom + "'><span class='glyphicon glyphicon-trash'></span> Delete</button></td></tr>"); } 
 
        } 
 
       }); 
 

 
      $('#noom').val(''); 
 
     });

htmlコード

<div class="form-group row add"> 
 
    <div class="col-md-5"> 
 
     <input type="text" class="form-control " id="noom" name="nom" 
 
       placeholder="New section here" required> 
 
\t \t <p class="error text-center alert alert-danger hidden"></p> 
 
    </div> 
 
    <div class="col-md-2"> 
 
     <button class="btn btn-warning" type="submit" id="add"> 
 
      <span class="glyphicon glyphicon-plus"></span> Add new Section 
 
     </button> 
 
    </div> 
 

 
</div>

私の検証が動作しない理由を私は知りません。これの例を示唆してください。私はlaravel 5を使用しています。私は非常に多くのサイトを検索しました。しかし、私はこれを解決することはできません。

答えて

1

検証が失敗した場合は、ステータスコード(エラーコード)が422で返されます。

$.ajaxでは、妥当性検査が失敗した場合には呼び出されないsuccessしか使用していません。

ajaxオプションにエラーメソッドを追加する必要があります。上記のコードを使用すると、次のようなコードが表示されます:

success: function (data) { 
    $('.error').remove() 
    $('table').append("<tr class='section" + data.id + "'><td>" + data.id + "</td><td>" + data.nom + "</td><td><button class='edit-modal btn btn-info' data-id='" + data.id + "' data-nom='" + data.nom + "'><span class='glyphicon glyphicon-edit'></span> Edit</button> <button class='delete-modal btn btn-danger' data-id='" + data.id + "' data-nom='" + data.nom + "'><span class='glyphicon glyphicon-trash'></span> Delete</button></td></tr>"); 
}, 
error: function (data) { 
    if (data.errors) { 
     $('.error').removeClass('hidden'); 
     $('.error').text(data.errors.title); 
     $('.error').text(data.errors.description); 
    } 
} 

+0

が、それはまだ同じ問題:( – meduprise

+0

に私は**解決策を見つけた場合、条件を削除です! 溶液(**場合の条件を削除していますdata.errors)** **ありがとうございました** – meduprise

1

ソリューションは、**(data.errors)

関連する問題