在块中渲染奏鸣曲管理员列表
Posted
技术标签:
【中文标题】在块中渲染奏鸣曲管理员列表【英文标题】:Render Sonata admin list in block 【发布时间】:2020-08-12 07:35:07 【问题描述】:我尝试为主页创建一个基于列表操作奏鸣曲管理员的块是可能的吗?
example
dashboard:
blocks:
- type: mea.task.block, position: center, roles: [ ROLE_WORKER ]
这里是块渲染
class TaskListAdminBlock extends AbstractAdminBlockService
/**
* @inheritdoc
*/
public function execute(BlockContextInterface $blockContext, Response $response = null)
$controller = 'Mea\TaskBundle\Sonata\Controller\TaskCrudController::listAction';
$path = [
'_controller' => $controller,
];
$subRequest = $this->requestStack->getMasterRequest()->duplicate($query, null, $path);
return $this->kernel->handle($subRequest, HttpKernelInterface::SUB_REQUEST);
TaskCrudController 是任务的奏鸣曲管理控制器
这个抛出错误
There is no `_sonata_admin` defined for the controller `Mea\TaskBundle\Sonata\Controller\TaskCrudController` and the current route ``
是否可以修复此代码或以其他方式存档?
【问题讨论】:
【参考方案1】:好的,我找到了很好的解决方案 这呈现在 ajax 制作的管理列表中
public function execute(BlockContextInterface $blockContext, Response $response = null)
$controller = 'Mea\TaskBundle\Sonata\Controller\TaskCrudController::listAction';
$path = array(
'_controller' => $controller
);
$query = [
'filter'=>[
'_per_page'=>4,
],
];
$subRequest = $this->requestStack->getMasterRequest()->duplicate($query, null, $path);
$subRequest->headers->set('X-Requested-With','XMLHttpRequest');
$subRequest->request->set('_sonata_admin','mea.task.task.admin');
$response = $this->kernel->handle($subRequest, HttpKernelInterface::SUB_REQUEST);
return $response;
不能完全正常工作 - ajax 模式切换操作来选择。
【讨论】:
以上是关于在块中渲染奏鸣曲管理员列表的主要内容,如果未能解决你的问题,请参考以下文章