【问题标题】:PHP laravel 5 validation errors with input name as key以输入名称为键的 PHP laravel 5 验证错误
【发布时间】:2017-01-16 17:43:38
【问题描述】:

我正在尝试为 laravel 制作一个基于 ajax 的表单,但我使用 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.'
]

【问题讨论】:

    标签: javascript php jquery validation laravel-5


    【解决方案1】:

    使用$validator->errors()->messages() 代替$validator->errors()->all() 来获取由输入名称键入的错误:

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

    【讨论】:

      【解决方案2】:

      我认为你在这里犯了错误。

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

      试试这个

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

      【讨论】:

      • 谢谢你,但这并不能帮助我解决数组不包含以输入名称作为键的消息的问题。
      猜你喜欢
      • 2017-07-10
      • 2014-11-05
      • 2017-10-27
      • 2015-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-26
      • 2017-07-27
      相关资源
      最近更新 更多