2016-09-08 35 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