代わりにquerybuilderを使用してください。あなたのコメントによると
http://symfony.com/doc/current/reference/forms/types/entity.html#using-a-custom-query-for-the-entities
私はあなたが上記のリンクからそれを把握することができると思い
...
OK EDIT#2:これは、あなたに良い例を示します
使用してみてください以下に示す「選択肢」オプション:
public function buildForm(FormBuilderInterface $builder, array $options) {
$builder
->add('device', EntityType::class, array(
'label' => 'Toestel',
'class' => 'AppBundle:Device',
'choices' => $device->getBrand()->getName().' '.$device->getName(),
}))
->add('parts', EntityType::class, array(
'label' => 'Onderdelen',
'class' => 'AppBundle:Part',
'choice_label' => 'name',
'multiple' => true))
->getForm();
}
これはあなたのためにはうまくいくとは限りませんが、 変数$device
は、フォームオプションとして、またはオブジェクトAppBundle:Deviceを表す変数として渡す必要があります。
これを試してみてください!
編集#3: あなたのコメントに基づいています。私はあなたがAJAXを読み込むことによって何を意味するのか理解しています。あなたは何を使っていますか?身体のための「オンロード」でしょうか?あなたはコードを表示しません。
しかし、おそらく最良の解決策は空の配列を持つChoiceTypeです。空の配列が機能しない場合は、何かを入れてみてください。
これらの提案をお試しください。
ヌル配列:それでゴミと
public function buildForm(FormBuilderInterface $builder, array $options) {
$builder
->add('device', ChoiceType::class, array(
'label' => 'Toestel',
'choices' => array(
//null
),
}))
->add('parts', EntityType::class, array(
'label' => 'Onderdelen',
'class' => 'AppBundle:Part',
'choice_label' => 'name',
'multiple' => true))
->getForm();
}
アレイ:
私は、私はあなたがそれを必要としている1(S)わからないことから、「デバイスのドロップダウンリストのためにそれをやりました
public function buildForm(FormBuilderInterface $builder, array $options) {
$builder
->add('device', ChoiceType::class, array(
'label' => 'Toestel',
'choices' => array(
'Something' => true,
),
}))
->add('parts', EntityType::class, array(
'label' => 'Onderdelen',
'class' => 'AppBundle:Part',
'choice_label' => 'name',
'multiple' => true))
->getForm();
}
ありがとう、Alvin、私はこの例で何が起こっているのか分かりません。それは比較的よく文書化されていません。どのような値を有効な選択肢として許可しながら、何も選択肢として渡されないことを確認するにはどうすればよいですか? – bluppfisk
あなたのコメントに基づいて自分の投稿を編集しました。 bluppfiskを見てください。 –
それは私が欲しいものではありません。私は選択肢が一切ないようにしたい。 'choices'に値を与えないと、自動的にすべてのデバイス名がchoicesオプションにロードされます。そうした場合は、すべての選択肢の*もロードされます。それから私の場合、4000に