私はロスターエンティティ用の新しい(作成)メソッドを持っており、サービスユーザをパラメータとして渡す別のサービスユーザエンティティからこのメソッドにナビゲートしたいと考えています。次に、サービス利用者オブジェクトのIDにロスターのserviceUserIdを設定したいとします。Symfonyフォームのフィールドをパラメータにバインド
私のコントローラメソッドは、サービスユーザエンティティからロスタにokをルーティングし、サービスユーザオブジェクトをフォームに正しく渡します。テンプレートのコードを使用してデフォルト設定で作成されたよう
/**
* Creates a new roster entity.
*
* @Route("/newfromsu/serviceUser={serviceUser}", name="roster_new_su")
* @Method({"GET", "POST"})
*/
public function newActionfromServiceUser(Request $request, ServiceUser $serviceUser)
{
$roster = new Roster();
$form = $this->createForm('AppBundle\Form\RosterType', $roster);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->persist($roster);
$em->flush($roster);
return $this->redirectToRoute('roster_show', array('id' => $roster->getId()));
}
return $this->render('roster/newfromsu.html.twig', array(
'roster' => $roster,
'serviceUser'=>$serviceUser
,'form' => $form->createView(),
));
}
新しい名簿テンプレートページとRosterTypeクラスは現在
{% extends '_base.html.twig' %}
{% block body %}
{{ dump() }}
<h1>Roster creation</h1>
{{ form_start(form) }}
{{ form_widget(form) }}
<input type="submit" value="Create" />
{{ form_end(form) }}
<ul>
<li>
<a href="{{ path('roster_index') }}">Back to the list</a>
</li>
</ul>
{% endblock %}
と
class RosterType extends AbstractType
{
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('serviceUserId')->add('rosterStartTime')->add('rosterEndTime')->add('rosterStatus')->add('numberResourcesNeeded')->add('customerId');
}
私の質問: 私は設定できますか新しいフォームのserviceUserIdの値を着信serviceUserオブジェクトのIDに変更
これはformBuilderで行うことができますか、または各属性をリストし、そこに関連するコントロールをバインドするTwigフォームを手動で作成する必要がありますか。
ありがとうございます!
完全に機能しているあなたの非常に明確な答えのためにフランクに感謝します! –