정의되지 않은 메서드 App\Models\User::attachRole() 호출 오류
P粉418351692
2023-08-30 14:08:49
<p><blockquote>
<p>정의되지 않은 메소드 AppModelsUser::attachRole() 호출
저는 Laravel의 완전 초보자입니다.
등록하려고 할 때 "laratrust" 패키지를 사용하고 있는데 이 오류가 발생하는데 왜</p>
</인용문>
<pre class="brush:php;toolbar:false;">`<?php
네임스페이스 AppHttpControllersAuth;
AppHttpControllersController를 사용하세요.
AppProvidersRouteServiceProvider를 사용합니다.
AppModelsUser를 사용하십시오.
IlluminateFoundationAuthRegistersUsers를 사용하세요.
IlluminateSupportFacadesHash를 사용하세요.
IlluminateSupportFacadesValidator를 사용하세요.
LaratrustTraitsHasRolesAndPermissions를 사용합니다.
클래스 RegisterController는 컨트롤러를 확장합니다.
{
RegistersUsers를 사용하십시오.
HasRolesAndPermissions를 사용합니다.
보호된 $redirectTo = RouteServiceProvider::HOME;
공개 함수 __construct()
{
$this->middleware('guest');
}
보호된 함수 유효성 검사기(배열 $data)
{
return Validator::make($data, [
'이름' => ['필수', '문자열', '최대:255'],
'이메일' => ['필수', '문자열', '이메일', '최대:255', '고유:사용자'],
'비밀번호' => ['필수', '문자열', '최소:8', '확인됨'],
]);
}
보호된 함수 생성(배열 $data)
{
$user = 사용자::만들기([
'이름' => $data['이름'],
'이메일' => $data['이메일'],
'비밀번호' => Hash::make($data['password']),
])/*->attachRole('사용자')*/;
return $user->attachRole('admin');
}
}
`</pre></p>
사용자 모델에
atachRole
메소드가 없습니다. 그래서 Installation 섹션의 4단계를 놓친 것 같습니다.User 클래스(일반적으로 AppModelsUser에 있음)에
으아악LaratrustContractsLaratrustUser
接口和LaratrustTraitsHasRolesAndPermissions
특성을 추가합니다.