私は誰かが正しい方向に私を向けることを望んでいます。私はこの問題について助けが必要です。私はSymfony 3+と互換性があり、元々2.7になっています。Symfony 3:Form Builderで廃止されたArrayKeyChoiceList
のSymfony \コンポーネント\フォーム\ ChoiceList \ ArrayKeyChoiceListクラスは、バージョン2.8以降廃止され、3.0で削除されます。使用のSymfony \コンポーネント\フォーム\ ChoiceList \ ArrayChoiceListは、代わりに以下
は基本的に私は、アレイ内の簡単なキーと値のペアを組み立てると、選択肢にそれを渡している、私が使用しているコードです。私はさまざまなテクニックを試してみましたが、さまざまな例を見て、この廃止された警告を取り除くことはできません。どんな助けもありがとう!
// SRC /フォーム/タイプ/ LinkType.php
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('id', TextType::class, array('label' => 'ID for Link', 'required' => false))
->add('artistid', HiddenType::class, array('label' => 'Artist ID'))
->add('linktypeid', ChoiceType::class,
array('choices' => $this->fillLinkTypes(),
'choice_translation_domain' => false,
'label' => 'Link Type'))
->add('url', TextType::class, array('label' => 'URL'))
->add('Submit', SubmitType::class, array('attr' => array('class' => 'btn btn-primary')))
;
}
private function fillLinkTypes() {
$er = $this->em->getRepository('testArtistBundle:LinkTypes');
$results = $er->createQueryBuilder('e')
->orderBy('e.name', 'ASC')
->getQuery()
->getResult();
$linkTypes = array();
foreach($results as $lt){
$linkTypes[$lt->getId()]=$lt->getName();
}
return $linkTypes;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'test\ArtistBundle\Entity\ArtistsLinks',
));
}
この行は '' choices '=> $ this-> fillLinkTypes() 'というエラーの原因ですか?あなたはそれが事実であるかどうか確認してもらえますか? –
@AlvinBunkこれは実際問題の原因となっている行です。私がそれをコメントアウトすると、警告は消えます。私はまた、この配列( '1' => 'Test'、 '2' => 'Another Test)のようなものを、運がないメソッドの代わりにハードコーディングしました。 – blamonet
質問:prod環境を使用している場合は、変更するたびに 'php bin/console cache:clear --env = prod'でキャッシュをクリアしていますか? –