根据 laravel 官方文档,
如果after回调返回非空结果,则该结果将被视为检查结果。
但是当我在回调之后声明并将值覆盖为false时,它仍然返回以前的值。
我错过了什么?如何覆盖Gate::after中的值?
Gate::define('edit-settings', function ($user = null) {
return true;
});
Gate::after(function ($user = null, $ability = null, $result = null, $arguments = null) {
return false; //this have no effect
});
// ------------
Gate::allows('edit-settings'); // return true!