根据 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
}
}
在我的控制器中,我有以下删除 a 的方法Screen:
public function delete(Request $request) {
$screen = Screen::find($request->screen_id);
$screen->delete();
...
}
我的期望是我不应该能够删除此处Screen,因为该策略始终返回 false,但是Screen通过调用此方法已成功删除。我究竟做错了什么?
月关宝盒