2016-09-08 33 views
0

我想爲laravel做一個基於ajax的表單,但是我使用laravel驗證方法來檢查輸入。PHP laravel驗證錯誤輸入名稱作爲密鑰

驗證錯誤返回一個基本的錯誤列表,但我需要將特定輸入名稱用作數組中每個項目的鍵。我需要這個,所以我可以通過javascript在輸入旁邊添加消息。

我已經看過文檔,但似乎找不到任何可以做到這一點的文檔。我想避免單獨檢查每個輸入的錯誤,以便可以在其他表單上重新使用代碼。

我在這裏錯過了什麼,關於如何實現這一點的任何想法?

PHP

$rules = ['username' => 'required', 'password' => 'required']; 
$validator = Validator::make(Request::input(), $rules); 

if($validator->fails()) 
{ 
    $data = $validator->errors()->all(); 
} 

結果:

$data = [ 
    0 => 'The username field is required.', 
    1 => 'The password field is required.' 
] 

期望的結果:

$data = [ 
    'username' => 'The username field is required.', 
    'password' => 'The password field is required.' 
] 

回答

2

代替$validator->errors()->all()使用$validator->errors()->messages()獲得通過輸入姓名鍵入錯誤:

$data = [ 
    'username' => [ 
     0 => "The username field is required." 
    ], 
    'password' => [ 
     0 => "The password field is required." 
    ], 
]; 
0

我想你犯錯那裏。

$data = ['validation' => $validator->errors()->all()]; 

試試這個

$rules = ['username' => 'required', 'password' => 'required']; 
$validator = Validator::make(Request::input(), $rules); 
if($validator->fails()) { 
$data = $validator->errors()->all(); 
} 
+0

我也感謝你,但是這並不能幫助我解決數組的問題不包含輸入名稱作爲關鍵字的消息。 – Orbitall