Blog スタッフブログ

EC-CUBE システム開発

[EC-CUBE]twigでのformの値取得

システム開発担当のTFです。

やり方

  • FormTypeを利用
  • twigで vars.value で値を取り出し利用する

サンプル

<?php

// 省略

class OrderType extends AbstractType
{
    // 省略

    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        // 省略

        if ($this->baseInfoRepository->get()->isOptionPoint() && $this->requestContext->getCurrentUser()) {
            $builder->add('use_point', IntegerType::class, [
                'required' => false,
                'constraints' => [
                    new NotBlank(),
                    new Regex([
                        'pattern' => "/^\d+$/u",
                        'message' => 'form_error.numeric_only',
                    ]),
                    new Length(['max' => 11]),
                ],
            ]);
        }

        // 省略
        
    }
	
	// 省略

}
// 省略
class ShoppingController extends AbstractShoppingController
{
	// 省略
	
	public function index(PurchaseFlow $cartPurchaseFlow)
    {
		// 省略
		
		$form = $this->createForm(OrderType::class, $Order);

        return [
            'form' => $form->createView(),
            'Order' => $Order,
        ];
	}
	
	// 省略

}
{# 省略 #}
	{# vars.value で値が取れる #}
	<input id="point_form" type="number" class="form-control" min="0" max="{{ totalprice_without_tax }}" value="{{ form.use_point.vars.value }}" >
	{{ form_widget(form.use_point, { 'type': 'hidden', 'attr': { 'type': 'text', 'class': 'form-control', 'min':0, 'max': totalprice_without_tax }}) }}
	{{ form_errors(form.use_point) }}
	<button class="ec-inlineBtn" id="point_submit" >決定</button>
{# 省略 #}