私の現在の設定は以下のとおりです。私が達成したいのは。 1つのディストリビューターは複数のカテゴリを持つことができます。だが1 カテゴリには、1つのディストリビュータ1:N<=>を含めることができますN:1。しかし、ディストリビューターの入力フィールドが空であっても、カテゴリーの作成をクリックすると失敗します。
カテゴリー
/**
* @var string
*
* @ORM\Id()
* @ORM\Column(type="string", nullable=false, unique=true)
* @ORM\GeneratedValue(strategy="UUID")
*/
private $id;
/**
* @var string
* @ORM\Column(type="string", nullable=false)
*/
private $title;
/**
* @var Distributor
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\Distributor", inversedBy="category")
* @ORM\JoinColumn(referencedColumnName="id")
*/
private $distributor;
ディストリビューター:
/**
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\Column(type="string", length=100)
*/
private $name;
/**
* @var ArrayCollection
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Category", mappedBy="distributor")
*/
private $category;
public function __construct()
{
$this->category = new ArrayCollection();
}
カテゴリーフォーム:
$builder
->add('parent', EntityType::class, [
'class' => Category::class,
'choice_label' => 'title',
'multiple' => true,
'required' => false,
'attr' => [
'class' => 'select2 form-control select2insidemodal js-example-matcher'
]
])
->add('title', TextType::class, [
'label' => 'Title',
'required' => true,
'by_reference' => true
])
->add('distributor', EntityType::class, [
'class' => Distributor::class,
'choice_label' => 'name',
'required' => false,
'attr' => [
'class' => 'select2 form-control select2insidemodal js-example-matcher'
]
]);
カテゴリアクションの作成
public function createAction(Request $request)
{
$category = new Category();
$categoryForm = $this->createForm(CategoryForm::class, $category);
$categoryForm->handleRequest($request);
if ($categoryForm->isSubmitted() && $categoryForm->isValid()) {
$result = $this->categoryService->create($category);
}
return $this->render(
'@app_bar/Category/categoryNew.twig',
[
'form' => $categoryForm->createView(),
]
);
}
私が得るエラーメッセージ:
Expected argument of type "AppBundle\Entity\Category", "Doctrine\Common\Collections\ArrayCollection" given
関連した質問
- sylius shopapiプラグインでのユーザー登録を上書きする方法
- $_POSTコマンドは複数選択の画像チェックボックス値を認識しません
- Symfony for PHP:foreachを使用してセッションからテーブルに複数の行を挿入する
- ネガティブルックアラウンドで定義されたルートは、ネガティブアサーションにもかかわらずルートと一致します
- 結合を使用した2つの異なる列のMysqlマイナス合計:Symfonyクエリビルダーの使用
- PHPでアップロードとカスタムファイル名を使用してアップロードフォームを作成するにはどうすればよいですか?
- PHPUnitはテストを見つけられません:symfony 518
- loginformauthenticator - : getuser() "メソッドはuserinterfaceを返す必要があります
- フォームアクションとonclickイベントを同時に実行するにはどうすればよいですか?
- symfony 5:本番環境の1行目で「php:// input」によってヘッダーがすでに送信されているため、セッションの開始に失敗しました
私が理解したように、親はコレクションではないので、フォームの親の複数オプションをfalseに変更します: