0

我正在尝试将Orchestra 平台用于Laravel 框架

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

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

我想要的是让 Cello CMS 扩展可以通过/orchestra/manages/pages与 Melody Theme Manager 可以通过相同的方式访问/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呢?

4

1 回答 1

4

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

以这两个用例为例,“旋律主题管理器”和“授权”。Melody 使用pages/manages仅仅是因为它只需要主题选择(通过单个 ACL),而 Authorize 使用是resources因为它有两种类型的 ACL,“manage-acl”和“manage-role”以及两种类型的资源,它们是 CRUD用于角色和 ACL 指标配置。

我正在考虑切换资源是否被列出的可能性,但是这种方法有优缺点,这是您可能正在寻找的,但它指向资源 URL 而不是manages/pages.

于 2012-12-30T14:37:23.467 回答