バージョン選択

フォーラム

メニュー

オンライン状況

28 人のユーザが現在オンラインです。 (13 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 28
もっと...

サイト内検索

質問 > 管理機能 > 在庫情報が更新できない

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
h_tanaka
投稿日時: 2020/9/14 17:21
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1038
在庫情報が更新できない
EC-CUBE 3.0.15

商品規格登録ページを参考に、商品の在庫情報のみを更新するページを作成しています。

ProductStockType を新規に作成し、在庫数と在庫無制限チェックボックスを定義しました。
public function buildForm(FormBuilderInterface $builder, array $options)
{
   $builder
       // 商品規格情報
       ->add('stock', 'number', array(
           'label' => '在庫数',
           'required' => false,
           'constraints' => array(
               new Assert\Regex(array(
                   'pattern' => "/^\d+$/u",
                   'message' => 'form.type.numeric.invalid'
               )),
           ),
       ))
   ;

   $transformer = new DataTransformer\IntegerToBooleanTransformer();

   $builder
       ->add($builder->create('stock_unlimited', 'checkbox', array(
           'label' => '無制限',
           'value' => '1',
           'required' => false,
       ))->addModelTransformer($transformer));
}


ProductClassController を参考に StockController を作成したのですが、登録ボタンを押すと「フィールドグループに追加のフィールドを含んではなりません。」というフォームエラーが発生してしまいます。
上記の在庫情報以外にフォームを追加していませんし、イベントも発行していないためプラグインも呼ばれていないはずです。
このエラーが出る原因わかりますでしょうか?

StockController 表示時
$ProductClasses = $app['eccube.repository.product_class']->findBy(array(
    'del_flg' => \Eccube\Common\Constant::DISABLED,
    'Product' => $Product,
));

/* @var FormBuilder $builder */
$builder = $app['form.factory']->createBuilder();
$builder
    ->add('product_classes', 'collection', array(
        'type' => 'admin_product_stock',
        'data' => $ProductClasses,
    ));

$productClassForm = $builder->getForm();


stock_edit.twig
<form role="form" name="form1" id="form1" method="post" action="{{ url('admin_product_stock_update', { id : Product.id}) }}">
{{ form_widget(classForm._token) }}
{% for product_stock_form in classForm.product_classes %}
    {{ form_widget(product_stock_form.stock) }}
    {{ form_errors(product_stock_form.stock) }}
    {{ form_widget(product_stock_form.stock_unlimited) }}
    {{ form_errors(product_stock_form.stock_unlimited) }}
{% endfor %}
</form>


StockController 更新時
/* @var FormBuilder $builder */
$builder = $app['form.factory']->createBuilder();
$builder
    ->add('product_classes', 'collection', array(
        'type' => 'admin_product_stock',
    ));

$form = $builder->getForm();
$form->handleRequest($request);
dump($form);    // ★フォームエラーが発生している
if ($form->isSubmitted()) {
    foreach ($form->get('product_classes') as $formData) {
        // ★ここの処理に来ない
    }
}


handleRequest() 後に dump($form); してみたときのフォームエラーの詳細は次のとおりです。
-message: "フィールドグループに追加のフィールドを含んではなりません。"
#messageTemplate: "This form should not contain extra fields."
#messageParameters: array:1 [▼
  "{{ extra_fields }}" => "0", "1"
]
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBEペイメント

公式ストアEC-CUBE4系デザインテンプレート続々リリース中

統計情報

総メンバー数は65,828名です
総投稿数は98,027件です

投稿数ランキング

1
seasoft
7332
2
AMUAMU
2712
3
468
2591
4
nanasess
2101
5
umebius
1715
6
yuh
1612
7
red
1422
8
h_tanaka
1038
9
fukap
907
10
tsuji
863
11
shutta
835
12
tao_s
792
13 ramrun 789
14 karin 657
15 sumida 641
16
homan
633
17 DELIGHT 571
18
patapata
502
19
flealog
485
20 tonton 437


ネットショップの壺

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

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