Laravel 帮手 - 移除门面
Laravel helpers - removing the facade
我有一个名为 \App\Helpers 的文件,其中包含几个函数,其中一个用于检查用户是否是管理员
@if(\Helper::isAdmin())
do something
@endif
我可以向用户模型添加一个方法并获取
$user->isAdmin()
这有点整洁。但是,有什么办法可以做到
@if(isAdmin())
do something
@endif
是的,您可以通过创建一个包含一些全局函数的文件来做到这一点,例如,在您的 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.
我有一个名为 \App\Helpers 的文件,其中包含几个函数,其中一个用于检查用户是否是管理员
@if(\Helper::isAdmin())
do something
@endif
我可以向用户模型添加一个方法并获取
$user->isAdmin()
这有点整洁。但是,有什么办法可以做到
@if(isAdmin())
do something
@endif
是的,您可以通过创建一个包含一些全局函数的文件来做到这一点,例如,在您的 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.