首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >升级easyadmin包时的路由更改

升级easyadmin包时的路由更改
EN

Stack Overflow用户
提问于 2021-08-09 17:54:06
回答 1查看 416关注 0票数 0

我负责升级一个以前使用symfony v4.4.19构建的应用程序的easyadmin包。最初我们有: easycorp/easyadmin-bundle v2.3.12。然后,我们决定将easyadmin包升级到v3,因为我们在启用/禁用列表视图中的布尔属性时遇到了一些问题。

当我使用v2时:

  • php bin/控制台调试:路由器显示了一个名为easyadmin的路由,其中包含一个路径/myworkshop/ .

  • I没有仪表板控制器或NecklaceCrudController,我只是有一个名为AccessoriesController.php的控制器,它有几个操作,比如当用户删除实体时执行deleteAction,当用户编辑实体时执行editAction,SearchAction……在deleteAction中有以下代码行:

return $this->redirect($this->generateUrl('easyadmin', array('action' => 'list', 'entity'=> $this->entity['name'])));

所以url会变成像/myworkshop/?action=list&entity=necklace这样的东西

要打开轻松的管理界面,我必须单击一个菜单链接,其链接是:->createItem('Visit my workshop', ['route' => 'easyadmin']);

  • 当我打开这个接口/references时,我会得到应用程序中不同实体的列表,如果我选择一个,我可以看到list视图,并且我可以成功地编辑一个实体,但是我不能像前面提到的那样从list视图中启用/禁用布尔属性。

我们在app>config>routing.yml中指定了/myworkshop而不是/admin

代码语言:javascript
复制
# easy admin
easy_admin_bundle:
    resource: "@myShop/Controller/AccessoriesController.php"
    type:     annotation
    prefix:   /myworkshop```


 - A custom css was successfully employed in : app>config>config.yml
    easy_admin:
    design:
        assets:
            css:
                - 'bundles/css/easyadmin.css

当我升级到v3时:

  • php bin/控制台调试:路由器显示了一个名为myshop_admin_dashboard_index的路由(该路由是自动生成的),路径为/easyadmin.

创建了

  • 仪表板控制器和NecklaceCrudController,DashboardController只具有configureCrud()和configureMenuItems()函数。后者包含yield MenuItem::linkToCrud链接。问题1:在第2版中,没有像这里这样创建的菜单链接,所以我想知道如何在我的应用程序接口上正确显示完整的实体列表?

  • In DashboardController没有索引()函数,也没有路由或链接,只有configureCrud()和configureMenuItems()函数。

  • 我想用他的几个动作保留AccessoriesController.php,但是现在,随着新的路线和路径的出现,它被完全忽略了。问题2:在generateUrl部分中有什么东西我必须改变吗?有人能给我举个例子,说明如果我像在documentation?

里读到的那样选择adminUrlgenerator,会变成什么样子吗?

  • -- routing.yml文件保持不变,但是,我的easyadmin界面只在访问该链接/easyadmin而不是/myworkshop时才出现。问题3:我想保留/workshop url,除了保持现在的routing.yml之外,我还应该做什么?我希望我们可以将myshop_admin_dashboard_index改为easyadmin,将/easyadmin改为myshop_admin_dashboard_index的/myworkshop,就像在第2版中那样,因为在AccessoriesController中有很多使用myshop_admin_dashboard_index的部分。

  • 问题4: css不再适用--知道为什么吗?可能与当前未被考虑的AccessoriesController相关。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-10 14:29:17

好的,您可以使用路由注释将index方法添加到仪表板控制器以更改路由。

代码语言:javascript
复制
class DashboardController extends AbstractDashboardController
{
    /**
     * @Route("/myworkshop", name="admin")
     */
    public function index(): Response
    {
        return $this->render('dashboard/index.html.twig');
    }

您可以添加任何路径到easyadmin菜单,如下所示

代码语言:javascript
复制
class DashboardController extends AbstractDashboardController
{
    public function configureMenuItems(): iterable
    {
        yield MenuItem::linktoRoute('Some Route', 'fa fa-info', 'route_name_here');
        #...
    }
}

您也可以添加任何CSS/js文件。

代码语言:javascript
复制
class DashboardController extends AbstractDashboardController
{
    public function configureAssets(): Assets
    {
        return Assets::new()
            ->addCssFile('build/admin.css')
            ->addJsFile('build/admin.js')
            ;
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68716498

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档