在PHP中向JSON添加错误标题和消息(Laravel)
发布时间:2020-12-14 19:39:16 所属栏目:大数据 来源:网络整理
导读:$rules = ['email' = 'required','password' = 'required']; $message = ['email.required' = 'Email cannot be empty','password.required' = 'Password cannot be empty']; $v = Validator::make($request-all(),$rules,$message); $error = $v-messages()
$rules = ['email' => 'required','password' => 'required']; $message = ['email.required' => 'Email cannot be empty','password.required' => 'Password cannot be empty']; $v = Validator::make($request->all(),$rules,$message); $error = $v->messages(); if ($v->fails()) { return response()->json(["code" => "400","error" => ["code" => "10","title"=>"","message" => $error->first() ]]); } 上面的代码将在我的JSON中返回一个错误块 error : { code: 11 message: "Some error message" } 但是我会在下面添加一个标题字段. error : { code: 11 title: "Some error title" message: "Some error message" } 我该怎么做这个验证?我需要.required 有人可以请一点解释一下吗? 解决方法
如果你想要这种验证错误信息格式,我认为你应该构建一些更复杂的“开箱即用”的东西.
这是您通过简单的验证测试得到的. 这是我使用的代码. Route::get('/',function () { $data = ['name' => '']; $rules = ['name' => 'required']; $v = Validator::make($data,$rules); dd($v->errors()); }); ……这就是输出. MessageBag {#145 ▼ #messages: array:1 [▼ "name" => array:1 [▼ 0 => "The name field is required." ] ] #format: ":message" } “好的,我能做什么?” 首先,一些假设.我看到你只拍了第一个错误.所以,你会得到这样的东西: "The name field is required." 以这种方式工作,您将丢失“名称”信息.你所拥有的只是一个简单的字符串消息.考虑到你想要达到的目标,没什么大不了的. 所以,我会工作不同.有很多方法可以做我将要做的事情,我只会告诉你一个程序. 首先,让我们来看一下数组的第一个元素. $errors = $v->errors(); $firstElement = reset($errors); dd($firstElement); 我会得到这样的东西: array:1 [▼ "name" => array:1 [▼ 0 => "The name field is required." ] ] 现在,从这开始你可以做类似的事情 $key = key($firstElement); $value = reset($firstElement)[0]; 获得关键和价值. 最后,您应该使用它们来构建您的响应. 这是一个例子: return response()->json( [ "code" => "400","error" => [ "code" => "10","title"=> "Field $key is empty.","message" => $value ] ]); 显然,我建议你创建一个类来实现整个机制,以便隔离职责. 希望能帮助到你. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |