首页 > 解决方案 > Laravel 护照不会创建用户

问题描述

我正在尝试通过HTTP POST requestPHP Laravel 注册用户。

这是我的AuthController

<?php
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Carbon\Carbon;
use App\User;
use Illuminate\Support\Facades\Validator;

class AuthController extends Controller
{
    public $successStatus = 200;

    public function register(Request $request)
    {
        $request->validate([
            'name' => 'required|string',
            'email' => 'required|string|email|unique:users',
            'password' => 'required|string|confirmed'
        ]);
        
        $user = new User([
            'name' => $request->name,
            'email' => $request->email,
            'password' => bcrypt($request->password)
        ]);
        
        $user->save();
        $message['success'] = 'Created Account Successfully';
        
        return response()->json([
            'message' => $message
        ], 201);
    }
    public function login(Request $request){
        $request->validate([
            'email' => 'required|string|email',
            'password' => 'required|string'
        ]);

        $credentials = request(['email', 'password']);

        if(Auth::attempt($credentials)){
            $user = Auth::user();
            $message['token'] = $user->createToken('MyApp')->accessToken;
            $message['token_type'] = 'Bearer';
            $message['experies_at'] = Carbon::parse(Carbon::now()->addWeeks(1))->toDateTimeString();
            $message['success'] = 'Logged in successfully';

            return response()->json(['message' => $message], $this->successStatus);
        }

        else{
            return response()->json(['error'=>'Unauthorised'], 401);
        }
    }
}

我的routes/api.php

<?php

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\AuthController;

Route::post('/users', [AuthController::class, 'register']);

当我使用名称、电子邮件和护照参数发送 POST 请求时http://localhost:8080/api/users/,它返回 200 响应而不是 201。它显示的是 Laravel 的索引页面,而不是响应。我检查了数据库,没有创建用户。

你能帮我解决我所缺少的吗?

标签: phplaravel

解决方案


你可以尝试改变你做路线的方式。举个例子:

Route::post('users', 'App\Http\Controllers\UsersController@register');

我真的不明白你为什么这样做: public $successStatus = 200;

也许尝试删除这一行。


推荐阅读