我的自定义帮助程序类是:
位于app / bootstrap / ACL.php
class ACL {
public function __construct(){
//Get user from session
//Get user permission array
}
public function isAllowed($key){
return 'calling from ACL class';
}
}
现在,我需要在所有项目控制器中访问此ACL类。所以
我在app.php文件中require_once 'ACL.php';
。
然后在我的控制器内我可以执行以下操作:
class UserController extends Controller {
public function editDetails() {
$acl = new \ACL();
echo $acl->isAllowed('edit-details');
//below is the code to edit details
}
}
这段代码有效,但我觉得应该有一个Laravel 5正确的方法来做到这一点。 我想知道:
1)这种方法是否正常或是否有更好的方法来实现这一目标?
2)如果不在每个控制器中执行$acl = new \ACL();
,我可以使用全局变量吗?
或类似这样的事件ACL::isAllowed('edit-details');
3)如何在Blade模板中正确运行$acl->isAllowed('edit-details')
条件?
非常感谢!
答案 0 :(得分:0)
为什么不直接将其添加到类图?
"autoload": {
"classmap": [
"app/Classes"
]
}
然后,您可以将您的班级放入app下的“/ classes”文件夹中,然后使用它。 跑吧
composer dump-autoload
然后你可以像laravel中的其他类一样使用它。