当前位置: 首页 > 知识库问答 >
问题:

Laravel授权能力检查参数太少

郦祯
2023-03-14

刀片:

@can('see_similar', $similar, $in_pair)
...
@endcan

类AuthServiceProvider扩展了ServiceProvider:

public function boot()
{
    $this->registerPolicies();
    Gate::define('see_similar', function ($user, $similar, $in_pair) {
        return count($similar) > 0 && (isset($in_pair)) && $in_pair !== 'in_pair';
    });
}

它给我这个错误:

函数App\Providers\AuthServiceProvider::App\Providers{closure}(),在/var/www/html/vendor/laravel/framework/src/light/Auth/Access/Gate中传递的参数太少。第452行和第3行的php(视图:/var/www/html/resources/views/daters.blade.php)

虽然如果我只传递一个参数“…function($user,$similor)”就可以了。我试图通过一系列参数,但没有成功。

请向我解释如何传递几个参数。

共有1个答案

华聪
2023-03-14

从文档:

盖茨总是接收一个用户实例作为他们的第一个参数,并且可以选择性地接收其他参数,例如相关的雄辩模型

您的问题是要将3个参数传递给闭包函数,需要删除一个。

public function boot()
{
    $this->registerPolicies();
    // Here you MUST pass at most 2 parameters
    Gate::define('see_similar', function ($user, $ELOQUENT_MODEL) {
        return $what_you_want; // A boolean value
    });
}
 类似资料:
  • 我正在试用Laravel5.6来构建一个ecom store API。前端将是一个单独的angular应用程序。我的大部分工作,但我想了解如何保护我的订单记录endpoint,这样除了我的angular应用程序之外,没有其他人可以创建订单。我已研究过护照方案,但看不到一个可能有帮助的解决办法。

  • 1.1. 符合 RFC6749 的 OAuth2.0 1.2. 基本接口 1.3. AuthorizationCode 颁发 1.4. Authorization Response 1.5. AccessToken 接口 1.6. AccessToken Response 1.7. 预注册参数 1.8. 其他授权方式 1.1. 符合 RFC6749 的 OAuth2.0 若琪智能家居技能授权支持符

  • 1. 智能家居技能 1.1. 概述 1.2. 包含技能 1.3. 使用方法 1.1. 概述 对于合作的音箱产品, 要使用 Rokid 智能家居语音,除了配置好智能设备, 还需要拥有智能家居技能的使用授权。 1.2. 包含技能 技能名称 技能描述 说法举例 Rokid 智能家居云端 用于设备控制 开灯、打开客厅灯、打开全部灯、你能控制什么设备... Rokid 家庭电视云端 用于电视频道控制 我要看

  • 我有以下几点。 我还尝试了一系列其他的排列,似乎都不起作用。我已经检查了这部分代码是否被执行,它执行并没有错误。 编辑 忘了提一下,所有的url都不能被经过身份验证的用户访问。但是任何经过身份验证的用户都可以访问所有URL。例如,以登录,我可以点击和,这是不应该发生的。 我没有东西可以尝试了。Emm...我已经用完了。我应该检查什么?

  • 我正在尝试为用户设置策略。然而,我不断得到一个错误: 太少的参数功能应用\政策\用户政策::更新(),1传递 /vendor/laravel/framework/src/Illuminate/Auth/Access/Gate.php在第481行,正好2预期(视图: /resources/views/users/index.blade.php) 错误异常 /app/Policies/UserPoli

  • 我是PHP和Laravel的初学者。我在我的项目Laravel 7中使用。我有存储库模式在我的项目与缓存。 PageServiceProvider: CachingBaseRepository: BaseRepository: PageRepository: 恶作剧记录片 PageRepositoryInterface: 我想在上面的代码中为我的网站添加缓存。我的控制器如下所示: 当我运行上述代码