FormRequests trong Laravel 5 là cách tiếp cận tốt để xác thực và ủy quyền. Nhưng cách tiến hành nếu tôi phải xác nhận yêu cầu có chứa dữ liệu từ một đến nhiều mối quan hệ. Ví dụ: nếu tôi có ứng dụng hóa đơn đơn giản. Một hóa đơn có nhiều dịch vụ. yêu cầu bài hình thức của tôi chứa dữ liệu này:Yêu cầu biểu mẫu Laravel 5 - xác nhận hợp lệ dữ liệu liên quan
array (size=5)
'date' => string '2014-11-14' (length=10)
'num' => string '175' (length=3)
'client_id' => string '5' (length=1)
'vat' => string '1' (length=1)
'services' =>
array (size=2)
0 =>
array (size=3)
'description' => string 'Service 1' (length=36)
'value' => string '10' (length=2)
'items' => string '2' (length=1)
1 =>
array (size=3)
'description' => string 'Service 2' (length=11)
'value' => string '20' (length=2)
'items' => string '2' (length=1)
Bây giờ trong lớp InvoiceFormRequest Tôi có thể xác nhận dữ liệu hóa đơn, nhưng làm thế nào để tiến hành dịch vụ:
<?php namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
use Response;
class InvoiceFormRequest extends FormRequest
{
public function rules()
{
return [
'date' => 'required',
'num' => 'required',
'client_id' => 'required',
'vat' => 'required'
];
}
public function authorize()
{
return true;
}
}
Cảm ơn trước!
Cập nhật: Như tôi đã đọc here trong Laravel 5.2 sẽ có thể viết một cái gì đó như thế này:
'services.*.description' => 'required',
'services.*.value' => 'required:numeric',
'services.*.items' => 'required:integer'
Bạn cần phải sử dụng một validator tùy chỉnh. Xem [this] (http://stackoverflow.com/a/26616023/397195) nếu bạn muốn trình xác thực tùy chỉnh bên trong 'FormRequest' của bạn. – Marwelln
Bản cập nhật của bạn phải là câu trả lời. – whoan
Vâng, tôi sẽ làm. Bây giờ nó là một thực tế. Laravel 5.2 vừa được phát hành. – fireball70