【问题标题】:setController() must be of the type stringsetController() 必须是字符串类型
【发布时间】:2021-08-09 15:35:16
【问题描述】:

我有一个使用 EasyAdmin 的后台办公室。

我正在使用 php 7.4、EasyAdmin 3 和 symfony 5.4

url /admin 像这样重定向到我的订单:

use App\Entity\Header;
use App\Entity\Carrier;
use App\Entity\Product;
use App\Entity\Category;
use App\Controller\Admin\OrderCrudController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use EasyCorp\Bundle\EasyAdminBundle\Config\MenuItem;
use EasyCorp\Bundle\EasyAdminBundle\Config\Dashboard;
use EasyCorp\Bundle\EasyAdminBundle\Router\CrudUrlGenerator;
use EasyCorp\Bundle\EasyAdminBundle\Controller\AbstractDashboardController;

class DashboardController extends AbstractDashboardController
{
    /**
     * @Route("/admin", name="admin")
     */
    public function index(): Response
    {
        $routeBuilder = $this->get(CrudUrlGenerator::class);

        return $this->redirect($routeBuilder->setController(OrderCrudController::class)->generateUrl());
    }

当我转到我的网址 /admin 时出现错误:

Argument 1 passed to EasyCorp\Bundle\EasyAdminBundle\Router\AdminUrlGenerator::setController() must be of the type string

在我的 OrderCrudController 中有:

    private $entityManager;
    private $crudUrlGenerator;

    public function __construct(EntityManagerInterface $entityManager, CrudUrlGenerator $crudUrlGenerator)
    {
        $this->entityManager = $entityManager;
        $this->crudUrlGenerator = $crudUrlGenerator;
    }

你知道我为什么会出现这个错误吗?

谢谢

【问题讨论】:

    标签: symfony php-7.4 easyadmin


    【解决方案1】:

    我发现了我的问题。

    在我的 OrderCrudController 中我需要使用:

        private $adminUrlGenerator;
    
        public function __construct(EntityManagerInterface $entityManager, CrudUrlGenerator $crudUrlGenerator, AdminUrlGenerator $adminUrlGenerator)
        {
            $this->entityManager = $entityManager;
            $this->crudUrlGenerator = $crudUrlGenerator;
            $this->adminUrlGenerator = $adminUrlGenerator;
        }
    

    我在我的函数中使用这样的 url:

    $url = $this->adminUrlGenerator
                ->setController(OrderCrudController::class)
                ->setAction('index')
                ->generateUrl();
    
            return $this->redirect($url);
        }
    

    在文档中:Here

    【讨论】:

      猜你喜欢
      • 2018-04-24
      • 2018-07-24
      • 2021-06-02
      • 2016-11-13
      • 2018-11-18
      • 1970-01-01
      • 2019-12-24
      • 2021-12-24
      • 1970-01-01
      相关资源
      最近更新 更多