質問 > 管理機能 > 商品登録画面に追加したフォームの登録処理でエラーになる |
管理機能
フラット表示 | 前のトピック | 次のトピック |
投稿者 | スレッド |
---|---|
uedayy |
投稿日時: 2021/9/8 14:00
対応状況: −−−
|
新米 登録日: 2021/9/8 居住地: 投稿: 1 |
商品登録画面に追加したフォームの登録処理でエラーになる ▼テンプレート
[EC-CUBE] EC-CUBE 4.0.6、新規インストール [レンタルサーバ] 開発用mamp [OS] mac os [PHP] PHP 7.4.2 [データベース] MySQL5.7.26 [WEBサーバ] Apache/2.2.34 [ブラウザ] Chrome最新 [導入プラグインの有無] 無 [カスタマイズの有無] 有 商品登録画面にアイテム情報を複数追加するカスタマイズを行う テーブル構造は、dtb_tag,dtb_product_tagを流用 商品登録画面で、dtb_itemの一覧をドロップダウンリスト表示し、選択された値をdtb_product_itemに登録する <作成したファイル> app/Customize/Entity/Item.php app/Customize/Entity/ProductItem.php app/Customize/Repository/ItemRepository.php app/Customize/Repository/ProductItemRepository.php app/Customize/Entity/ProductTrait.php app/Customize/Form/Type/Admin/ProductItemType.php app/Customize/Form/Extension/ProductTypeExtension.php app/template/admin/Product/product_item.twig app/Customize/EventSubscriber/ProductSubscriber.php <参考にしたサイト> https://a-zumi.net/eccube4-add-product-item/ [現象] 商品登録画面にitemドロップダウンリストの表示は出来たのですが、登録ボタンを押すと、エラーが出ます。 Expected argument of type "Customize\Entity\Item or null", "int" given. //ProductTypeExtension.php// $builder ->add('ProductItems', CollectionType::class, [ 'entry_type' => ProductItemType::class, 'required' => false, 'allow_add' => true, 'allow_delete' => true, 'prototype' => true ]); // 商品項目を登録 $productItems = $form->get('ProductItems')->getData(); /** @var ProductItem $productItem */ foreach($productItems as $productItem) { $productItem->setProduct($data); ★$productItem->setItem(■); $this->entityManager->persist($productItem); } ★部分にコードを追加すればいいのかと思いますが、■の取得方法がわからないです。 // ProductItemType.php // $builder ->add('item', ChoiceType::class, [ 'required' => false, 'label' => 'オプション選択', 'choices' => $selectItems, ]); } //フォームタイプのnameがitemの場合のエラー Expected argument of type "Customize\Entity\Item or null", "int" given. //フォームタイプのnameをitem_idに変更した場合のエラー Neither the property "item_id" nor one of the methods "getItemId()", "itemId()", "isItemId()", "hasItemId()", "__get()" exist and have public access in class "Customize\Entity\ProductItem". フォームタイプでitemエンティティを使わないといけないような気がするのですが、、一つのフォームタイプでは無理なのでしょうか。 よろしくお願いいたします。 |
フラット表示 | 前のトピック | 次のトピック |
題名 | 投稿者 | 日時 |
---|---|---|
» 商品登録画面に追加したフォームの登録処理でエラーになる | uedayy | 2021/9/8 14:00 |
Re: 商品登録画面に追加したフォームの登録処理でエラーになる | h_tanaka | 2021/10/21 13:01 |