我正在尝试使用Laravel framework的Orchestra platform。
我已经为该平台安装了Authorize、Robotix、Melody Theme Manager和Cello CMS扩展。
我注意到Authorize、Robotix和Cello CMS扩展都列在参考资料下,而Melody主题管理器列在扩展旁边的顶层项目。
我想要的是有大提琴CMS扩展可通过/orchestra/manages/pages在相同的方式,旋律主题管理器是通过/orchestra/manages/melody.themes可访问。
我已经解决了添加顶部菜单项的问题,我可以使用如下命令:
// Attach a menu only if user has the authorization to manage Pages
$acl = Orchestra\Acl::make('cello');
$menu = Orchestra::menu();
if ($acl->can('manage-pages')) {
$menu->add('Cello', 'after:themes')
->title('Pages')
->link(handles('orchestra::resources/cello'));
}Event::listen('orchestra.started: backend', function()内部
这增加了一个工作链接,当然,问题是它仍然指向resources/cello,那么我如何让它响应manages/pages呢?
发布于 2012-12-30 22:37:23
manages/pages被设计为使用Orchestra\Resources,它为复杂的CRUD提供了更好的API,Cello只是简单的事件侦听器,您必须添加额外的代码才能将其路由到控制器。现在大提琴只会处理页面内容,但在未来我们正在考虑添加帖子(博客)到它,如果我们遵循manages/pages API将很难维护(个人偏好)。
以这两个用例为例,“旋律主题管理器”和“授权”。Melody使用pages/manages只是因为它只需要主题选择(通过单个ACL),而Authorize使用resources是因为它有两种类型的ACL,"manage- ACL“和"manage-role”,以及两种类型的资源,它们是角色的CRUD,以及ACL度量配置。
我正在考虑切换资源是否列出的可能性,但这种方法有正反两面,这就是你可能想要的,但它似乎指向资源的URL,而不是manages/pages。
https://stackoverflow.com/questions/14090336
复制相似问题