Lravel api路由验证未验证

时间:2017-08-10 15:57:50

标签: php laravel laravel-validation

我确实从Lumen搬到了Laravel,现在将我的项目转换成了。除验证外,一切正常。出于某种原因,如果我尝试验证,它只是重定向到welcome.blade.php视图。什么可能导致这种情况?

我只使用路径的API部分,而不是视图。 我不是处理视图。我正在使用Laravel的无状态部分。

根据文档,我可以这样验证:

$this->validate($request, [
        'title' => 'required|unique|max:255',
        'body' => 'required',
]);
  

如果验证通过,您的代码将继续正常执行。然而,   如果验证失败,   将抛出Illuminate \ Contracts \ Validation \ ValidationException。

我还试图强制它返回JSON响应但没有成功:

$validator = $this->validate($request, ['email' => 'required']);

         if ($validator->fails()) {
            $messages = $validator->errors();
            return new JsonResponse(['status' => 'error', 'messages' => $messages]);
         }

然而,我没有失败,只是返回响应代码为200的欢迎视图。我已经尝试了文档和谷歌中的所有可能的验证方法。他们没有工作。

我甚至尝试过使用干净的laravel安装,声明一条测试路径和测试控制器进行了验证,结果完全相同。

验证是否意味着与Laravel的restful / stateless部分兼容?

非常感谢任何建议。

2 个答案:

答案 0 :(得分:0)

1-首先,如果您希望电子邮件在users表中是唯一的,则每个示例的唯一键需要一个表,如下所示:

'email' => 'required|unique:users',

答案 1 :(得分:0)

我想您可能已将路线放在route / web.php文件中。将该代码从web.php替换为api.php

尝试将您的API端点放在route / api.php文件中。

请记住,您需要在路线中添加前缀/ api。

Ex:test.com/api/users。