是否有任何解決方法可以將使用 CRUD 控制器中的新操作鏈接EasyAdmin 4.x 到另一個與它具有 OneToMany 關系的 CRUD 控制器中的操作?
class FirstEntityCrudController extends AbstractCrudController
{
...
public function configureActions(Actions $actions): Actions
{
return $actions
->add(Crud::PAGE_INDEX, Action::new('add-second-entity','Add a second entity')
->linkToCrudAction(Action::NEW ???)
)
;
}
}
檔案說我可以使用:
linkToCrudAction():執行當前CRUD控制器的一些方法;
但似乎沒有關于如何“執行不同CRUD 控制器的某些方法”的指示。
注意:有一個偷偷摸摸的方法,但它似乎并不健康:
->linkToUrl('the url to the desired action')
使用:
- PHP 8.1
- Symfony 5.4
- 易管理 4.x
uj5u.com熱心網友回復:
在@Eugne 的評論之后,正如檔案所AdminUrlGenerator提到的,我們可以使用以下類為所需的操作生成一個 URL :
class FirstEntityCrudController extends AbstractCrudController
{
private $adminUrlGenerator;
public function __construct(AdminUrlGenerator $adminUrlGenerator)
{
$this->adminUrlGenerator = $adminUrlGenerator;
}
...
public function configureActions(Actions $actions): Actions
{
//The magic happens here
$url = $this->adminUrlGenerator
->setController(SecondEntityCrudController::class)
->setAction(Action::NEW)
->generateUrl();
return $actions
...
->add(Crud::PAGE_INDEX, Action::new('add-second-entity', 'Add second entity')
->linkToUrl($url)
);
}
}
這對我有用。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/475558.html
