2016-03-27 20 views
5

Trong Laravel 5.1 Dự ánLaravel dạng ajax xác nhận với lĩnh vực đầu vào

Tôi nhận được đáp ứng Ajax này Như Lỗi

{ 
     "success":false, 
     "errors":{ 
     "drugs_power":["The drugs power field is required."] 
     } 
} 

tôi cần một xác nhận lỗi như hình ảnh này enter image description here tôi có thể làm nó bằng cách trình xác thực laravel theo mã này (trả về Từ Bộ điều khiển),

$this->validate($request, [ 
      'drugs_name' => 'required|unique:drugs', 
      'drugs_group_name' => 'required', 
      'drugs_power' => 'required' 
     ]); 

Hiển thị Trong blade.php bởi mã này

<div class="form-group{{ $errors->has('drugs_power') ? ' has-error' : '' }}"> 
    <label for="userName">Power</label> 
     <div> 
      <input type="text" class="form-control" name="drugs_power" 
               value="{{old('drugs_power')}}"> 
     @if ($errors->has('drugs_power')) 
      <span class="help-block"> 
     <strong>{{ $errors->first('drugs_power') }}</strong> 
       </span> 
      @endif 
    </div> 


</div> 

Làm cách nào tôi có thể thực hiện xác thực ajax + laravel giống như vậy ??

+0

Bạn đang cố gắng làm gì chính xác? Những gì bạn có ở trên có vẻ bình thường, phải không? Bạn đang cố gắng trả về một thông báo cụ thể từ lỗi? – camelCase

+0

có. tôi cần một thông điệp cụ thể từ lỗi. –

+2

Bất cứ điều gì bạn đang sử dụng để thực hiện gửi ajax (jQuery?), Nó cũng phải được lập trình theo cách như vậy để xử lý dữ liệu lỗi và sau đó nối thông báo lỗi vào HTML của bạn. Không có phép thuật nào trong Laravel sẽ làm điều đó cho bạn. –

Trả lời

1

Truyền tham số thứ 3 đến validate cho phép bạn chỉ định thông báo tùy chỉnh, như đã xem here. Bạn có thể sử dụng ký hiệu "chấm" để chỉ định thông báo lỗi cho một trường cụ thể.

$this->validate($request, [ 
    'drugs_name' => 'required|unique:drugs', 
    'drugs_group_name' => 'required', 
    'drugs_power' => 'required' 
], [ 
    'drugs_power.required' => 'Your custom message here.' 
]); 
+0

Tôi có thể hiển thị lỗi giao diện điều khiển vào HTML của mình bằng cách nào? –

+0

Laravel sẽ trả về một phản hồi 'JSON' chứa tất cả các lỗi xác thực khi không xác thực với các yêu cầu AJAX. Nó trả về phản hồi này với trạng thái '422' để bạn có thể truy cập các lỗi ở đó. [Câu trả lời này] (http://stackoverflow.com/questions/11092007/check-what-error-value-is-in-ajax-callback) cũng sẽ giúp bạn. – camelCase

0

Giả sử u đang sử dụng đối tượng yêu cầu Laravel chính xác, bạn sẽ nhận được mã phản hồi 422 trong trình duyệt của mình.

Nếu bạn muốn nắm bắt điều này trên toàn cầu, bạn có thể mở rộng hành vi ajax mặc định, bằng cách đặt mã sau vào JS của bạn.

$(function() { 
    $.ajaxSetup({ 
     statusCode: { 
      422: function (data) { 
        $.each(data.responseJSON, function (k, v) { 
         // do something with the error 
        }) 
      } 
     } 
    }); 
}); 
0

Bạn đang tìm kiếm https://github.com/whipsterCZ/laravel-ajax

Nó thực hiện chính xác những gì bạn muốn và nhiều hơn nữa!

gửi và Members hình thức qua ajax là đơn giản như thế này - không cần cấu hình cần thiết

HTML

<form action="" class="ajax">...</form> 

khiển

public function update(ClientRequest $request, Client $client) 
{ 
    $client->update($request->all()); 
    $request->session()->flash('success', 'Client has been updated.'); 

    return \Ajax::redirect(route('clients.index')); 
} 

hình thức xác nhận (thông qua tùy chỉnh FormRequest) và hiển thị lỗi (trong errorBag hoặc trực tiếp trên đầu vào)

Các vấn đề liên quan