我是 laravel php 的新手,我嘗試使用 api post 請求創建一個新用戶,當我發送此請求時,我使用 psgql 和 laravel 9 時遇到問題。我使用該 鏈接來執行此操作和自定義 somthing
這是我的代碼:我有像這樣的用戶模型
class User extends Authenticatable
{
use HasApiTokens,HasFactory, Notifiable;
public $timestamps = false;
protected $table = 'user';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'first_name',
'last_name',
'email',
'password',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password',
'remember_token',
];
/**
* The attributes that should be cast to native types.
*
* @var array
*/
protected $casts = [
'email_verified_at' => 'datetime',
];
}
這是我的 AuthController 來創建新用戶
class AuthController extends Controller
{
/**
* Create User
* @param Request $request
* @return User|\Illuminate\Http\JsonResponse
*/
public function createUser(Request $request){
try{
$validateUser = Validator::make($request->all(),[
'first_name'=>'required',
'last_name'=>'required',
'email'=>'required|email|unique:users,email',
'password'=>'required'
]);
if($validateUser->fails()){
return response()->json([
'status'=>false,
'message'=>'validation error',
'errors'=>$validateUser->errors()
],401);
}
$user = User::create([
'first_name'=>$request->first_name,
'last_name'=>$request->last_name,
'email'=>$request->email,
'password'=> Hash::make($request->password)
]);
return response()->json([
'status'=>true,
'message'=>'User created successfully',
'token'=>$user->createToken("API TOKEN")->plainTextToken
],200);
}
catch (\Throwable $th){
return response()->json([
'status'=>false,
'message'=>$th->getMessage()
],500);
}
}
}
當我發送 post 請求 json 時出現問題
{
"status": false,
"message": "SQLSTATE[42P01]: Undefined table: 7 ERROR: relation \"users\" does not exist\nLINE 1: select count(*) as aggregate from \"users\" where \"email\" = $1\n ^ (SQL: select count(*) as aggregate from \"users\" where \"email\" = [email protected])"
}
請幫我
uj5u.com熱心網友回復:
而不是:?
'email'=>'required|email|unique:users,email',
使用這個:?
'email'=>'required|email|unique:user,email',
請注意,您的模型中定義的表名是.Useruser
因此,這也必須反映在您的驗證規則中。
uj5u.com熱心網友回復:
您忘記在驗證中檢查您的表格
'email'=>'required|email|unique:users,email',將用戶
替換為用戶
uj5u.com熱心網友回復:
您在驗證中使用了錯誤的表名,您需要將 'users' 替換為 'user' :
'email'=>'required|email|unique:users,email' 為'email'=>'required|email|unique:user,email'
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/514641.html
標籤:php拉拉维尔
下一篇:Laravel-嵌套關系
