【问题标题】:Stand alone vs resource extensions in Orchestra (Laravel)Orchestra(Laravel)中的独立与资源扩展
【发布时间】:2012-12-14 22:45:21
【问题描述】:

我正在尝试将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呢?

【问题讨论】:

    标签: php routing laravel


    【解决方案1】:

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

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

    我正在考虑是否可以切换资源是否被列出,但这种方法有利有弊,这是您可能正在寻找的,但它指向资源 URL 而不是 @987654326 @。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-05
      • 2018-03-05
      • 2019-02-22
      • 2020-02-12
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多