【问题标题】:Laravel AdminLTE pass parameter to menu can methodLaravel AdminLTE 将参数传递给菜单可以方法
【发布时间】:2020-09-16 12:42:53
【问题描述】:

我目前正在使用 https://github.com/jeroennoten/Laravel-AdminLTE 用于我的 laravel 项目。我面临的问题是我试图将参数传递给菜单配置中的 can 方法,如下所示,但没有任何运气让它工作。

菜单配置:

[
    'text' => 'Add new post',
    'url'  => 'admin/blog/new',
    'can'  => ['access:posts'],
],

帖子门:

Gate::define('access', function ($user,$location) {
   return $user->hasAccess($location);
});

我想我可能错误地将参数传递给门。

【问题讨论】:

  • 你这里少了一个美元符号:$user->hasAccess(location),应该是$user->hasAccess($location)
  • 这是一个错字,问题是访问门没有从 can 方法接收参数
  • 我可能错了,但是查看源代码here,您似乎无法在菜单配置中将其他参数传递给can

标签: laravel adminlte


【解决方案1】:

你不能传递额外的参数。

但是如果你只是想绕过变量,你可以使用use。您可以定义基于 URL 段/路径的示例。

$location = request()->segment(1); // get 'blog' from admin/blog/new
Gate::define('access', function ($user) use($location) {
   return $user->hasAccess($location);
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-24
    • 1970-01-01
    • 2011-11-30
    相关资源
    最近更新 更多