2017-10-21 129 views
3

如何通過身份驗證laravel驗證陣列名稱Laravel

現在我用我的控制器。我的問題是在我的HTML我有我的輸入型文本這樣

<input type="text" name="quantity_box[]" class="form-control" autofocus="" /> 
<input type="text" name="quantity_box[1]" class="form-control" autofocus="" /> 
<input type="text" name="quantity_box[2]" class="form-control" autofocus="" /> 

好,因爲你看到我的HTML它只檢查我的第一個輸入,如果我的quantity_box[1]爲空,它會返回錯誤偏移1,這不是知道如何工作了這一點

$this->validate($request, [ 
     'id_p' => 'required', 
     'id_c' => 'required', 
     'quantity_box'=>'required', 


    ] 
+0

爲了最佳實踐,我建議使用「表單請求驗證」https://laravel.com/docs/5.5/validation# form-request-validation –

+0

謝謝你,先生,我會檢查它 – test1321

+0

我已經把這種方法的例子作爲第二個答案,以防你或別人可能想要在某個時候使用它。 –

回答

3

好吧,既然你在證實$ request變量,您應該驗證輸入名稱。

如果您使用的是Laravel 5.2+,那麼您可以像這樣驗證數組。

$validator = Validator::make($request->all(), [ 
     'quantity_box.*' => 'required', 
    ]); 
+0

無論如何改變由ID驗證?是因爲它可以是quantity_box [10]我知道有多少用戶會插入數據 – test1321

+0

@ test1321是的,有一種方法。 –

+0

可否給我舉個例子請@LarsMertens – test1321

1

最佳做法,我建議用Laravel的5.5形式請求驗證laravel.com/docs/5.5/validation#form-request-validation

工作使用這種方式,您將讓您的控制器代碼儘可能乾淨。


首先讓我們請求我們的驗證和認證規則myQuantiyBoxRequest.php存儲在

php artisan make:request myQuantityBoxRequest 

<?php 

namespace App\Http\Requests; 

use Illuminate\Foundation\Http\FormRequest; 
use Auth; 

class myQuantityBoxRequest extends FormRequest 
{ 
    /** 
    * Determine if the user is authorized to make this request. 
    * The user is always authorized here to make the request 
    * 
    * @return bool 
    */ 
    public function authorize() 
    { 
     return true; 
    } 

    /** 
    * Get the validation rules that apply to the request. 
    * 
    * @return array 
    */ 
    public function rules() 
    { 
     return [ 
      'quantity_box.*' => 'required' 
     ]; 
    } 
} 

精讀troller功能示例

use App\Http\Requests\myQuantityBoxRequest; 

public function postQuantityBoxData(myQuantityBoxRequest $request){ 
    // Do something after validation here 
} 

你走了。如果您使用此功能,它將驗證輸入,就好像您正在使用$this->validate()

+0

謝謝先生,這讓我更懂謝謝了很多先生 – test1321

+0

不客氣。 –