소나타 관리자는 이러한 작업을 매우 쉽게 해결할 수 있으며 사용자 지정 작업을 수행 할 필요가 없습니다. 해결책의 하나가 될 수있다 :
- 은 UserAdmin 목록보기에서 하나 개의 컬럼에 대한 custom template을 정의 거기에 특별한 버튼 (링크)를 렌더링합니다. 링크는 일부 get 매개 변수를 사용하여 CarAdmin create action으로 연결되어야합니다.
- getNewInstance() 메소드의 CarAdmin에서 해당 ID를 사용하여 특수 get 매개 변수 집합 사용자가 있는지 확인하십시오. your_template_name.html.twig에서 UserAdmin
protected function configureListFields(ListMapper $listMapper)
{
$listMapper
->add('actions', 'string', array(
'template' => 'your_template_name.html.twig',
'mapped' => false,
)
);
}
에서
:이 단계는 방법의 getFormFields() prePersist() 등
일부 코드 샘플에서 수행 될 수있다
<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;
}
감사합니다. 정확히 내가 무엇을 찾고 있었는지. – CookieMonster