【问题标题】:EasyAdmin Bundle problems while developing my web app开发我的 Web 应用程序时出现 EasyAdmin Bundle 问题
【发布时间】:2020-12-28 19:45:15
【问题描述】:

我正在开发一个 symfony 5 网络项目,我必须将其作为一个大学项目。我从管理部分开始,我使用了 easycorp 的软件包 easyadmin。我首先把粗鲁做得很好,但是通过推进项目,我开始收到以下错误

EasyCorp\Bundle\EasyAdminBundle\Router\AdminUrlGenerator::setCrudId(): 参数 #1 ($crudId) 必须是字符串类型,给定 null,调用 /Applications/MAMP/htdocs/appmusic/vendor/twig/twig/src/Extension/CoreExtension.php 在第 1541 行

我不知道它即将到来。开始另一个项目并再次出现同样的问题。

如果你们能派上用场,我需要你们的帮助。非常感谢

【问题讨论】:

  • Easy Admin 捆绑包的哪个版本?也许有关实体和管理控制器的更多信息会有所帮助。
  • 请分享更多细节,以便其他人可以重现您的问题
  • 例如,您是否使用已弃用 setCrudId 的 EasyAdminBundle v3.2.0?
  • 我用的是3.2.0版本的easy admin,Symfony版本是5.2。现在的问题甚至出现在新项目中。我试图重现已完成的工作,但是一旦我制作了管理员杂物,错误就会开始弹出,并且每当我尝试访问仪表板上的任何管理员杂物时,它都会一直出现。而且我真的不能提供更多信息,因为实际上这是 Symfony 调试器显示的唯一内容
  • @NicoHaase 我在完成 Symfony Fast Track 书 (symfony.com/doc/current/the-fast-track/en/9-backend.html) 的步骤 9.1 后遇到此错误。我还直接从本书的 Github 存储库中检查了代码,并得到了同样的错误。它使用 EasyAdminBundle v3.2.3。

标签: php symfony easyadmin


【解决方案1】:

FastTrack 也面临同样的问题。

首先我删除了管理员

$ symfony composer remove 'admin'

在我安装了最新版之后

$ symfony composer req 'admin'

不确定是否需要。

已通过关注https://github.com/EasyCorp/EasyAdminBundle/blob/master/UPGRADE.md解决 寻找生成 EasyAdmin 页面的链接

所以现在我使用 AdminUrlGenerator 而不是 CrudUrlGenerator

现在我的 DashboardController 是 类 DashboardController 扩展 AbstractDashboardController { 私人 $adminUrlGenerator;

  public function __construct(AdminUrlGenerator $adminUrlGenerator)
  {
    $this->adminUrlGenerator = $adminUrlGenerator;
  }

  /**
   * @Route("/admin", name="admin")
   */
  public function index(): Response
  {
    $url = $this->adminUrlGenerator
        ->setController(ConferenceCrudController::class)
        //->setAction('edit')
        //->setEntityId(1)
        ->generateUrl();
    
    //$routeBuilder = $this->get(CrudUrlGenerator::class)->build();
    //$url = $routeBuilder->setController(ConferenceCrudController::class)->generateUrl();

      return $this->redirect($url);
      //return parent::index(); 
  }
  ...

【讨论】:

  • 谢谢。你让我免于在这个问题上数周的头痛。我希望快速通道书和代码得到更新。它可能不会出现在其他人身上,但我想我会为人们添加提示,以确保他们不会简单地重新加载他们之前使用的相同管理 URL,因为它似乎与旧代码相关并且仍会生成异常.相反,请在 127.0.0.1:8000/admin 处重新加载页面
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-04
相关资源
最近更新 更多