Согласно документам Laravel, политика должна обнаруживаться автоматически, если она следует соглашениям об именах: она должна быть помещена в каталог Policies
, ее имя должно состоять из названия модели плюс слова Policy
и модели должны быть в каталоге app
. В моем случае это все верно, но политика не работает.
Название модели Screen
. Политика называется ScreenPolicy
:
class ScreenPolicy
{
use HandlesAuthorization;
/**
* Create a new policy instance.
*
* @return void
*/
public function __construct()
{
//
}
public function delete(User $user, Screen $screen)
{
return false; //always return false for testing
}
}
И в моем контроллере у меня есть следующий метод, который удаляет Screen
:
public function delete(Request $request) {
$screen = Screen::find($request->screen_id);
$screen->delete();
...
}
Я ожидаю, что я не должен ' Здесь нет возможности удалить Screen
, поскольку политика всегда возвращает false, однако Screen
успешно удаляется вызовом этого метода. Что я делаю не так?