私はレストランに関するプロジェクトを持っています。 は、私はいくつかのフィールドを持つエンティティrestaurant
を持っている、と私はそのフォームでレストランページを作成し、そのビュー(show.html.twig)でrestaurant
を表示することができたら、別のエンティティに関連する外部キーがpeople
値はデータベースに入りますが、ビューには表示されません - Symfony3
と呼ばれ、 how many people can eat there
これは、この値を追加できる小さなフォームで新しいページを開くはずです。送信したら、レストランのページ(show.html.twig)にリダイレクトして、今入力した値を見てください。
にformType私は人々
class PeopleType extends AbstractType
{
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('value', NumberType::class, array(
'label' => 'How many people',
'required' => false,
))
->add('save', SubmitType::class, array(
'label' => 'submit'
));
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => People::class,
));
}
}
の数を追加するために作成したと私はその
class PeopleController extends Controller
{
public function PeopleAction(Request $request, Restaurant $restaurant)
{
$people = new People();
$form = $this->createForm(PeopleType::class, $people);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->persist($people);
$em->flush();
return $this->redirectToRoute('admin_restaurant_show', array('id' => $restaurant->getId()));
}
return $this->render('admin/restaurant/people.html.twig', array(
'restaurant' => $restaurant,
'form' => $form->createView()
));
}
}
と私は
を作成したルートの特定のコントローラを作成しましたadmin_restaurant_people:
path: /{id}/people
defaults: { _controller: "AdminBundle:Retrocession:people" }
私のレストランのビュー(show.html.twig)には、すでにレストランのレストランが追加されています。私は、ルートへのリンクが
<a href="{{ path('admin_restaurant_people', { 'id': restaurant.id }) }}">Add people</a>
だから、一度にクリックしたとき、私は自分の価値を追加し、レストランページshow.html.twig
にリダイレクトすることができますこのページで
PeopleType
フォームビューに行く持っています
そしてレストランビューで値を表示することができるように、私はそれを表示できるようにするには小枝のフィールドを追加
<p>People</p>
{% for value in restaurant.people.values %}
<p>{{ value }}</p>
{% endfor %}
しかし、フォームに入力された値は表示されません。それはデータベースの中では正しいですが、ビュー自体は小枝でさえ私に見せてくれません。
は、ここで私は私がどこかで何かを逃したと思いますPeople
エンティティ
と私のデータベースです。問題を見つけるのを助けてくれますか?
ありがとうございました
レストランと人の関係は何ですか?また、あなたのフォーム型では、フィールド 'value'を持っているようですが、テンプレートに' people.values'(additionnal s)を呼び出します。最後に、エラーはあなたが{{ダンプ(restaurant.people.values)}} ' – mickdev
こんにちは中関係を@mickdev'どのように見えるか、それはだ見るためにあなたの価値をダンプする必要がありますので、文字列に配列を変換しようとしていると言います私のエンティティのレストランは 'oneToMany'はここに私のエンティティ' * @ORM \ OneToMany(targetEntity = "AppBundle \ Entity \ People"、mappedBy = "レストラン")のアノテーションです ' 'それで配列を与えると仮定します –
また、symfonyオートコンプリートで' s'で値を取得すると、 'value'は実際には動作しません。だから私は '{{restaurant.people.values}}'が動作すると思う。 –