我有两(2)个管理员,UserAdmin和CarAdmin。从UserAdmin的列表视图中,我想要一个自定义操作,重定向到CarAdmin 创建视图 ,并且已经选择了用户。
到目前为止,我已设法使用其控制器创建自定义操作。我的挑战是重定向到CarAdmin创建/新表单,传递一些数据持久性参数。
任何参考点都将非常感激。 感谢
答案 0 :(得分:0)
Sonata Admin可以轻松解决此类任务,无需进行自定义操作。其中一个解决方案可能是:
一些代码示例:
在UserAdmin中
protected function configureListFields(ListMapper $listMapper)
{
$listMapper
->add('actions', 'string', array(
'template' => 'your_template_name.html.twig',
'mapped' => false,
)
);
}
在your_template_name.html.twig
中<a href="{{ path('route_of_the_car_admin_create', {user: object.id}) }}">Create Car for this user</a>
在CarAdmin中
public function getNewInstance()
{
$car= parent::getNewInstance();
$userId = $this->getRequest()->query->get('user');
if ($userId) {
$em = $this->modelManager->getEntityManager(User::class);
$user = $em->getRepository(User::class)->find($id);
$car->setUser($user);
}
return $car;
}