【问题标题】:laravel 5 validation message return some arraylaravel 5 验证消息返回一些数组
【发布时间】:2015-10-05 04:28:09
【问题描述】:

我正在使用 laravel 进行验证,所以下面是我的代码

//error holder
                $error = array();
                $validator = Validator::make($request->all(),[
                    'email' => 'email|unique:users',
                    'username' => 'required|regex:/^[a-zA-Z0-9_]+([-.][a-zA-Z0-9_]+)*$/',
                    'new_password' => 'required',
                    'confirm_password' => 'required',
                    'full_name' => 'required',
                    'role' => 'required',
                    'status' => 'required',
                ]);
                if ($validator->fails()){ 
                    array_push($error, $validator->messages());
                }
$msg = "Ops seems like there's an error: ";
                    foreach($error as $error_bug){
                        $msg .= $error_bug . ", ";
                    }

//return error
return $msg;

所以首先我创建了一个空数组,然后将错误消息推送到数组并循环遍历对象数组并将其返回给客户端。一切正常,除了有一件丑陋的事情发生,它让我这样

Ops 好像有错误:{"email":["The email has already been taken."]}

您可以看到我不想要的括号和大括号,我只想从验证失败中获取错误消息。有什么想法,帮忙?

【问题讨论】:

  • 你能print_r($error);print_r($error_bug);吗?

标签: php laravel laravel-5


【解决方案1】:
@if (count($errors) > 0) <div class="alert alert-danger">
<ul> @foreach ($errors->all() as $error)
<li><b>Ops, something went wrong.</b></li>
<li>{{ $error }}</li>
@endforeach
</ul> </div> @endif

这种方法的好处是不会重复不必要的代码。

更新:

$msg = $validator->errors()->all("Ops seems like there's an error: :message");

【讨论】:

  • 我正在以 ajax 方式检索它,所以我只希望返回消息
  • 更新了我的答案,用 laravel 检查了代码,它工作了 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-30
  • 2019-04-15
  • 2020-04-02
  • 2015-08-17
  • 1970-01-01
  • 2015-12-09
相关资源
最近更新 更多