【发布时间】:2017-06-16 06:08:22
【问题描述】:
请求类
class LoginRequest extends Request
{
public function authorize() {
return true;
}
public function rules() {
return [
'EmailAddress' => 'required',
'Password' => 'required',
];
}
public function messages() {
return [
"EmailAddress.required" => trans("login.RequiredEmailAddress"),
"Password.required" => trans("login.RequiredPassword")
];
}
}
路线
Route::post('/AuthenticateUser',
array(
'uses' => 'API\Login\apiLoginController@AuthenticateUser',
'as' => 'AuthenticateUser'
)
);
控制器动作方法
我有一个控制器,到目前为止,我对请求类所做的只是为了验证输入参数。下面是动作方法
public function AuthenticateUser(LoginRequest $request) {
dd("Hello");
}
网址
localhost:85/Laravel/public/api/v1/AuthenticateUser
我正在使用 Postman Chrome 扩展程序来测试 Url。因此,我们可以看到,在 Request 类中,电子邮件地址和密码都是必需的参数。
当我传递两个参数值时。没有问题,一切正常。当我将电子邮件地址值保留为空时...出现 404 错误,这是屏幕截图。
如果没有提供电子邮件地址,我是否遗漏了一些东西来摆脱 404 错误?我期待输入电子邮件地址的错误消息
下面是我同时传递邮箱和密码时的工作状态
【问题讨论】:
-
这很可能是因为您输入的 URI 不正确。 - 输入
php artisan route:list以查看所有现有的 URI,并尝试它们。为什么还要包含 URI 的Laravel/public部分?您通常不需要添加它,并且您是否在路由文件中将前缀定义为api/v1? -
正如我在问题中已经提到的,如果我同时传递电子邮件地址和密码,它就可以工作。
-
我们缺少一些信息。你说如果你提供这两个字段,它就可以工作,但是你应该看到
dd('hello')的结果,但是你得到的是JSON。您收到 404 的可能原因是因为在您的应用程序的某个地方,它正在您的数据库中搜索一个空的电子邮件地址,但没有找到任何东西。您需要找到输出 JSON 的正确控制器来解决问题。
标签: php laravel laravel-5.3