未定義メソッド App\Models\User::attachRole() の呼び出しエラー
P粉418351692
2023-08-30 14:08:49
<p><ブロック引用>
<p>未定義メソッド App\Models\User::attachRole() を呼び出す
私はLaravelの全くの初心者です
「laratrust」パッケージを使用していますが、登録しようとするとこのエラーが発生します。理由がわかりません</p>
</blockquote>
<pre class="brush:php;toolbar:false;">`<?php
名前空間 App\Http\Controllers\Auth;
App\Http\Controllers\Controller を使用します。
App\Providers\RouteServiceProvider を使用します。
App\Models\User を使用します。
Illuminate\Foundation\Auth\RegistersUsers を使用します。
Illuminate\Support\Facades\Hash を使用します。
Illuminate\Support\Facades\Validator を使用します。
Laratrust\Traits\HasRolesAndPermissions を使用します。
クラス RegisterController はコントローラーを拡張します
{
RegistersUsers を使用します。
HasRolesAndPermissions を使用します。
protected $redirectTo = RouteServiceProvider::HOME;
パブリック関数 __construct()
{
$this->ミドルウェア('ゲスト');
}
保護された関数バリデータ(配列 $data)
{
return Validator::make($data, [
'名前' => ['必須', '文字列', '最大:255'],
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
'パスワード' => ['必須', '文字列', '分:8', '確認済み'],
]);
}
保護された関数 create(array $data)
{
$user = ユーザー::作成([
'名前' => $data['名前'],
'電子メール' => $data['電子メール'],
'パスワード' => Hash::make($data['パスワード']),
])/*->attachRole('user')*/;
return $user->attachRole('admin');
}
}
`</pre></p>
User モデルには
attachRole
メソッドがありません。 したがって、「インストール」セクションのステップ 4 を見逃しているようです。Laratrust\Contracts\LaratrustUser
インターフェイスと
Laratrust\Traits\HasRolesAndPermissionsトレイトをユーザー クラス (通常は App\Models\User にあります) に追加します。
リーリー