我是symfony的初学者,我遇到一个我认为很容易找到但我不能解决的问题。因此,我使用symfony 4,我创建了两个实体:Project和Task。一个项目可以有两个或多个任务,但是这些任务只能与一个项目链接。
例如,我可以进行一个项目调用:“去日本”,而我的任务将是“找到住宿地点”,“预订机票”等,>
所以我创建一个具有ManyToOne关系的实体。我用制造商来制作杂物并稍加改动。
因此,到目前为止,我可以对一个简单项目进行CRUD,也可以对任务进行CRUD。现在我想当我从一个项目创建任务时,他知道哪个项目。 (例如,我们在“去日本”项目中,当我创建任务“他知道我们在“去日本”中))
因此,在我的树枝模板中,我成功地列出了当前项目中的任务列表以及创建新任务的按钮。当我单击它时,将显示选择项目的表格。一切正常,但我不想人们选择项目,我想要选择的选择是自动知道我们是哪个项目。
啊,我也成功地在任务中显示了该项目的ID。我通过一条路线,那里有我的代码:
在我的控制器任务中:
/** * @Route("/new", name="ptask_new", methods={"GET","POST"}) */ public function new(Request $request,ProjectRepository $projectRepository): Response { $id = $request->query->get('id'); $ptask = new Ptask(); $form = $this->createForm(PtaskType::class, $ptask); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { $entityManager = $this->getDoctrine()->getManager(); $entityManager->persist($ptask); $entityManager->flush(); return $this->redirectToRoute('ptask_index'); } return $this->render('ptask/new.html.twig', [ 'ptask' => $ptask, 'form' => $form->createView(), 'id' => $id, ]); }
在我的树枝项目中:
<a href="{{ path('ptask_new',{'id': project.id}) }}">Ajouter une tache à faire </a>
在我的树枝任务中,只有以下链接:
{{ form_widget(form) }} <button class="btn">{{ button_label|default('Save') }}</button> {{ form_end(form) }}``` In my form ,tasktype :
PtaskType类扩展AbstractType{公共功能buildForm(FormBuilderInterface $ builder,数组$ options){$建设者->添加('ptaskname')->添加('ptaskposition')-> add('ptaskprojet',EntityType :: class,['class'=> Project :: class,'标签'=>'Projet','choice_label'=>'项目名称'
]) ; } public function configureOptions(OptionsResolver $resolver) { $resolver->setDefaults([ 'data_class' => Ptask::class, ]); }
}
I don't know if i need to give you an other code , if so please tell me . May be my code aren't really good sorry .
我是symfony的初学者,我遇到一个我认为很容易找到但我不能解决的问题。因此,我使用symfony 4,我创建了两个实体:Project和Task。一个项目可以有两个或多个...
您需要使用查询生成器来执行此操作。这里是文档