Laravel在$validator->fails()
调用时抛出异常。
好吧,我只想在ApiController.php
中使用Laravel 5.7
创建一个无状态寄存器方法。
我使用Validator
门面来检查发送的数据。
$validator = Validator::make($request->all(), [
'name' => 'required',
'email' => 'required|email|unique',
'password' => 'required',
'c_password' => 'required|same:password',
]);
if ($validator->fails()) {
return response()->json(['error'=>$validator->errors()],
Response::HTTP_UNAUTHORIZED);
}
但是,当我使用xdebug时,我看到了一些奇怪的东西。 fail方法似乎引发异常。
Laravel发送带有标题的错误HTML页面:
唯一验证规则至少需要1个参数。
该路线在api.php
Route::post('register', 'Api\UserController@register');
您对此有解释吗? 阅读感谢。
答案 0 :(得分:1)
唯一规则的语法为unique:table,column,except,idColumn
。
因此,我为您更改了它以使用users
表。
如果您不想使用用户表,请更改users
后面的unique:
$validator = Validator::make($request->all(), [
'name' => 'required',
'email' => 'required|email|unique:users',
'password' => 'required',
'c_password' => 'required|same:password',
]);
if ($validator->fails()) {
return response()->json(['error'=>$validator->errors()],
Response::HTTP_UNAUTHORIZED);
}
有关唯一规则的更多信息,请参见:https://laravel.com/docs/5.7/validation#rule-unique
答案 1 :(得分:0)
在您的API请求中添加以下标头:
...
Accept: application/json // <-----
这将告诉Laravel您想要json格式的响应。
注意:这与Content-type: application/json
不同。后面的数字表示主体中正在发送的数据格式。