Laravel助手 - 移除立面

时间:2017-10-24 14:42:08

标签: laravel-5 methods static-methods helpers

我有一个名为\ App \ Helpers的文件,其中包含一些函数,用于检查用户是否为管理员

@if(\Helper::isAdmin())
  do something
@endif

我可以向用户模型添加方法并获取

$user->isAdmin()

这有点整洁。但是,有什么办法可以做到

@if(isAdmin())
      do something
@endif

1 个答案:

答案 0 :(得分:1)

是的,您可以通过创建包含某些全局函数的文件来执行此操作,例如,在composer.json文件中添加一个条目,如下所示:

"autoload": {
    "classmap": [
        "database"
    ],
    "psr-4": {
        "App\\": "app/"
    },
    "files": [
        "helpers/functions.php"
    ]
},

请注意files部分。然后在项目根目录中创建一个顶级目录helpers并在其中创建functions.php文件并声明您的全局函数,例如:

// helpers/functions.php
if (! function_exists('isAdmin')) {
    function isAdmin()
    {
        // You can entirely rewrite the logic here or
        // you can use your existing Helper::isAdmin()

        return \Helper::isAdmin();
    }
}

不要忘记最后运行composer dump-autoload。顺便说一句,如果你在Larave 5.5.x,那么你可以使用larave' ls new Blade::if() Directives described here