我剛剛安裝了 laravel、sanctrum、livewire 作為新的身份驗證系統。我需要為用戶使用一個已經創建的表。我正在嘗試將我的用戶模型更改為自定義模型。問題是這個其他模型沒有默認列(電子郵件和密碼),所以我需要個性化 sanctrum 如何使用它。我已經創建了 de Model 并在 config/auth.php 中更改了默認模型:
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\Models\Usuario::class,
],
然后我收到錯誤:
Illuminate\Database\QueryException
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'email' in 'where clause' (SQL: select * from `USUARIOS` where `email` = [email protected] limit 1)
我知道沒有太多資訊,但可能之前有人這樣做過。提前致謝。
uj5u.com熱心網友回復:
答案在檔案夾 App\Actions\Fortify 的檔案中。所有這些檔案都具有使用登錄和密碼特征欄位的邏輯函式。
每個例子:
App\Actions\Fortify\CreateNewUser.php 檔案對注冊表進行驗證并創建一個新用戶。因此,在那里更改欄位的自定義名稱將使注冊表中的注冊表生效。
public function create(array $input)
{
Validator::make($input, [
'name' => ['required', 'string', 'max:255'],
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
'password' => $this->passwordRules(),
'terms' => Jetstream::hasTermsAndPrivacyPolicyFeature() ? ['required', 'accepted'] : '',
])->validate();
return Usuario::create([
'custom_name_for_name' => $input['name'],
'custom_name_for_email' => $input['email'],
'custom_name_for_password' => Hash::make($input['password']),
]);
}
所以,在簡歷中:
1- 我們需要創建自定義用戶模型。
2- 在 config/auth.php 中更改默認模型。
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\Models\Usuario::class,
],
3- 然后修改 App\Actions\Fortify 檔案中的欄位名稱
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/354197.html
