【发布时间】:2019-04-04 07:13:34
【问题描述】:
我目前正在 Laravel 中编写一个 API,但遇到了一些障碍。目前我专注于我的 api 的身份验证部分,所以我有以下路线:
(通过php artisan route:list)
+--------+--------+------------------------+------+--------------------------------------------------------+------------+
| Domain | Method | URI | Name | Action | Middleware |
+--------+--------+------------------------+------+--------------------------------------------------------+------------+
| | POST | v1/users/auth/login | | App\Http\Controllers\User\AuthController@login | api |
| | POST | v1/users/auth/register | | App\Http\Controllers\User\AuthController@register | api |
+--------+--------+------------------------+------+--------------------------------------------------------+------------+
非常简单。现在,当我尝试通过 Postman 向v1/users/auth/login 发帖时,它可以工作了。它给了我预期的反应和一切。但是,当我尝试 register 路线时,Laravel 会抛出 404?
没有错误,什么都没有,只有 404。现在通过一些穴居人调试,我可以看到它通过了请求的 authorize() 方法,但随后又抛出了那个该死的错误。
这是我的要求:
class RegistrationRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return !Auth::check();
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'code' => 'required',
'username' => 'required|unique:users',
'password' => 'required|confirmed|min:6',
];
}
public function persist()
{
$user = User::create([
'username' => $this->username,
'password' => password_hash($this->password, PASSWORD_DEFAULT),
'reg_ip' => $this->ip(),
'last_ip' => $this->ip()
]);
return response()->json($user->api_token, 201);
}
这怎么可能,因为我的路线已明确定义?
谢谢。
-- 编辑:
我的控制器:
class AuthController extends Controller
{
public function register(RegistrationRequest $request)
{
return $request->persist();
}
public function login(LoginRequest $request)
{
return $request->persist();
}
}
【问题讨论】:
-
包含表单的刀片文件在哪里
-
你能提供AuthController登录功能的代码和它应该返回的文件吗?
-
@ShaielndraGupta “我目前正在编写 API”,“尝试通过 Postman 发布到 v1/users/auth/login”。没有刀片文件。
-
@BonishKoirala 更新了问题:)