我正在尝试将Orchestra平台用于Laravel框架。
我已经安装了授权,Robotix,旋律主题管理器和大提琴CMS扩展的平台。
我注意到授权,Robotix和大提琴CMS扩展都在资源下列出,而旋律主题管理器被列为扩展旁边的顶级项目。
我想要的是有大提琴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
?
Cello CMS通过设计使用Orchestra'Resources
,它为复杂的CRUD提供了更好的API, manages/pages
只是简单的事件侦听器,您必须添加额外的代码将其路由到控制器。现在在这个时刻大提琴将只是处理页面内容,但在未来,我们正在考虑添加帖子(博客的一种)到它,如果我们遵循manages/pages
的API将很难维护(个人偏好)。
以"旋律主题管理器"answers"授权"两个用例为例。Melody使用pages/manages
仅仅是因为它只需要主题选择(通过单个ACL),而Authorize使用resources
是因为它有两种类型的ACL,"manage-acl"answers"manage-role"以及两种类型的资源,它们是角色的CRUD和ACL度量配置。
我正在考虑切换资源是否被列出的可能性,但有赞成和反对这种方法,这是你可能要找的,但它指向资源URL,而不是manages/pages
。