我正在嘗試訪問EasyCorp\Bundle\EasyAdminBundle\Dto\PaginatorDto我的 Crud Controller 中的:
public function __construct(
private EntityManagerInterface $manager,
private EntityRepository $entityRepository,
private PaginatorDto $paginatorDto,
) {
}
但是我有這個錯誤=>Cannot autowire service "App\Controller\Activity\ActivityCrudController": argument "$paginatorDto" of method "__construct()" references class "EasyCorp\Bundle\EasyAdminBundle\Dto\PaginatorDto" but no such service exists.我不明白為什么以及如何解決它:(
任何想法 ?
uj5u.com熱心網友回復:
我不是該捆綁包的專家,因此請稍加注意,但查看捆綁包的代碼時,我注意到PaginatorDto它不是服務(顧名思義)。
由于該 DTO 不是服務(也可以不是),因此您不能自動裝配它,也不能使其成為“本地”服務(例如:在您的應用程式中)。
因此,為了檢索 DTO 物件,請注入(您可以在此處AdminContextProvider注意到的服務)并使用它來獲取 DTO
$adminContext->getCrud()->getPaginator();
uj5u.com熱心網友回復:
您的 crud 控制器應該擴展AbstractCrudController它使您可以訪問當前的管理背景關系。
因此,如果您想在其中一種 crud 控制器方法中使用它,您應該能夠通過以下方式訪問分頁器:
$paginator = $this->getContext()->getCrud()->getPaginator();
如果你想在你的 crud 控制器之外做同樣的事情,比如說在另一個服務中。您需要注入AdminContextProvider以首先獲取AdminContext并以相同的方式進行操作。
private ?AdminContext $siteRepository;
public function __construct(AdminContextProvider $adminContextProvider)
{
$this->adminContext = $adminContextProvider->getContext();
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/517423.html
標籤:php交响乐易管理
上一篇:使用Typescript的型別“數字”的重復索引簽名
下一篇:一對多關系問題
