早就对Laravel说了更新的话,而我正试图实现的是,在登记时将用户角色分配给用户。 我成功地开了种子,并创建了我的用户表,其中载有作用。 我建立了标识和标志,但我试图以某种理由建立登记册,以证明我从《URL para in my case:{>{> 东道Auth /register/1
。 如果有的话,就应该发挥作用。
对我的登记册来说,这是目前如何看待:
public function rules(): array
{
return [
name => required|string|max:150 ,
email => required|email|max:150|unique:users ,
password => required|confirmed ,
role_id => required
];
}
public function getData(int $role_id): array
{
$this->merge([
role_id => $role_id,
]);
return $this->validated();
}
这里是我的主计长:
public function __invoke(RegisterRequest $request)
{
User::create($request->getData(1));
}
public function register(RegisterRequest $request, int $role_id)
{
User::create($request->getData($role_id));
}
最后,网络路线(使用SPA):
Route::post( /register/{role_id} , [RegisterController::class, register ]);
当我试图操作时,错误是:
{
"message": "The role id field is required.",
"errors": {
"role_id": [
"The role id field is required."
]
}
}
当我起作用时——我获得正确数目,但出于某种原因——我没有在我证实我的数据的那部分添加——只是我身体所听到的3个论点——是,我也是请求的我的机构:
{
"name": "test",
"email": "[email protected]",
"password": "password",
"password_confirmation": "password"
}
和我一样,我对拉拉夫说了不错的新话,这样,如果比我这样一耳不闻,或者如果有人能够帮助我了解我在这里做的错误。 预收:D
Update: I also tried this method:
Route::post( /register/registerCustomer , [RegisterController::class, registerCustomer ]);
Route::post( /register/registerMechanic , [RegisterController::class, registerMechanic ]);
原文:
public function registerCustomer(RegisterRequest $request)
{
$role_id = $request->input( role_id , 1);
User::create(array_merge($request->validated(), [ role_id => $role_id]));
}
public function registerMechanic(RegisterRequest $request)
{
$role_id = $request->input( role_id , 2);
User::create(array_merge($request->validated(), [ role_id => $role_id]));
}
萨米族问题:
"message": "SQLSTATE[HY000]: General error: 1364 Field role_id doesn t have a default value (Connection: mysql, SQL: insert into `users` (`name`, `email`, `password`, `updated_at`, `created_at`) values (test, [email protected], $2y$12$bx3UZQqOG8cO91FTz5mOeeT/