Orchestra(Laravel)独立与资源扩展

时间:2012-12-30 11:30:35

标签: php routing laravel

我正在尝试将Orchestra platform用于Laravel framework

我已为该平台安装了AuthorizeRobotixMelody Theme ManagerCello CMS扩展程序。

我注意到Authorize,Robotix和Cello CMS扩展都列在了Resources下,而Melody Theme Manager被列为Extensions旁边的顶级项目。

我想要的是通过/orchestra/manages/pages访问Cello CMS扩展程序,方法与通过/orchestra/manages/melody.themes访问Melody Theme Manager的方式相同。

我已经解决了添加顶级菜单项我可以使用的东西:

// 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

1 个答案:

答案 0 :(得分:4)

Cello CMS在设计上使用Orchestra\Resources,它为复杂的CRUD提供了更好的API,manages/pages只是简单的事件监听器,您必须添加额外的代码才能将其路由到控制器。现在,此时大提琴将处理页面内容,但是在未来我们正在考虑添加帖子(类似博客),如果我们遵循manages/pages API很难维护(个人偏好)。 / p>

采用这两个用例,“Melody Theme Manager”和“Authorize”。 Melody正在使用pages/manages只是因为它只需要主题选择(通过单个ACL),而Authorize使用resources因为它有两种类型的ACL,“manage-acl”和“manage-role” “和两种类型的资源,即角色的CRUD和ACL度量配置。

我正在考虑切换资源是否可以列出的可能性,但是这种方法是赞成和反对的,这是您可能正在寻找的,但它指向资源URL而不是{{ 1}}。