내 프로젝트에 정책을 구현하려고하는데 UserRelationPolicy
에 추가하려는 askFriend
메서드가 있습니다.정책이없는 Laravel Gate 리소스가
그래서 내 UserRelationPolicy에서 askFriend 메서드를 구현했지만 [email protected]
에서 호출하려고하면이 메서드에서 호출하는 방법을 스스로에게 물었습니다.
무언가는 $this->authorize('askFriend', $friend);
과 같지만 전혀 작동하지 않습니다. 그래서 문서에 추가 검색 나는이 같은 자원 이름에 게이트 방법으로 UserRelationPolicy
의 특정 방법을 결합 할 수 있음을 발견 Documentation Writing Gate
: 당신은 여기에 표현을 찾을 수 있습니다
Gate::resource('userrelation', 'UserRelationPolicy', [
'userrelation.askfriendrelation' => 'askFriendRelation'
]);
이 코드를 실행하려고하면 다음과 같은 오류가 발생합니다.
Call to undefined method Illuminate\Auth\Access\Gate::resource()
그리고 아무것도 없습니다. Resource 메서드가 전혀 존재하지 않는 것 같습니다. 많은 수색 후에, 머리말에 각 Gate
를 포함하는 것을 시도하는. 정적으로 또는 인스턴스로 호출하려고합니다. 아무것도 작동하지 않으며 그 방법은 찾을 수 없을 것입니다 ...
뭔가 잊었나요? 어떻게 정책 클래스의 컨트롤러에서 사용자 정의 메서드를 호출 할 수 있습니까?
나에게 다음과 같은 결과'Laravel 프레임 워크 5.4.18' 그래서 내가 올바른 버전에있어 생각을 제공 -v' 명령'PHP는 장인 그러나 나는 그 방법을 찾지 못했습니다 ... – dib258
'Illuminate \ Auth \ Access \ Gate.php'에서 Gate 클래스를 확인하고 이것을 다음과 비교하십시오 :'https://github.com/laravel/framework/blob/5.4/src/Illuminate/Auth/Access/Gate.php'. 코드에 차이가 있다면 composer.json을 다시 확인하고'composer update'를 실행해야합니다. –
오늘 같은 오류가 발생하여 5.4.24로 업데이트 된'compose update'를 실행하여 문제가 해결되었습니다. 기회를 잡으세요. –