バージョン選択

フォーラム

メニュー

オンライン状況

52 人のユーザが現在オンラインです。 (39 人のユーザが フォーラム を参照しています。)
登録ユーザ: 2
ゲスト: 50
kmorita takashi.s もっと...

サイト内検索

質問 > 管理機能 > 商品登録画面に追加したフォームの登録処理でエラーになる

管理機能

新規スレッドを追加する

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
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

 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,691名です
総投稿数は109,940件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1638
8
red
1570
9
mcontact
1282
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.