2015-04-01 31 views
2

我的表單有問題。我試圖從表單中獲取價值,但沒有結果。我的形式是:如何從使用方法的表單獲取數據GET

<form action="{{ path('show_product_category',{ 'id':category.getId(), 'name':category.getCategoryLink() }) }}" method="get" {{ form_enctype(form) }}> 
    {{ form_widget(form) }} 
    <input type="submit" class="btn btn-primary marg-left-20" value="Search"/> 
</form> 

我的控制器:

$entity = new Product(); 
    $form = $this->createForm(new ProductType(), $entity); 
    $request = $this->getRequest(); 
    $form->handleRequest($request); 

    //Get filter array from search 
    if ($form->isValid()) { 
     $aFilter['iMinPrice'] = $form["min_price"]->getData(); 
     $aFilter['iMaxPrice'] = $form["max_price"]->getData(); 
    } 
    print_r($aFilter); 

我ProductRepository:

public function buildForm(FormBuilderInterface $builder, array $options) 
{ 
    $builder->add('min_price', 'text', array('mapped' => false, 'label' => 'From :', 'attr'=> 
             array(
              'placeholder'=>'Max price', 
              'class'=>'form-control'))) 

      ->add('max_price', 'text', array('mapped' => false, 'label' => 'To :' , 'attr'=> 
             array(
              'placeholder'=>'Minim price', 
              'class'=>'form-control'))) 

      //->add('colors', 'choice', array('mapped' => false, 'choices' => Colors::getColors(), 'multiple' => TRUE, 'expanded' => TRUE)) 
    ; 
} 

aFilter爲NULL,但如果我使用POST方法aFilter我從形式價值。請幫幫我!

+0

'$ form-> get('min_price') - > getData()'? – stevenll 2015-04-01 12:37:07

+0

您使用$ entity作爲值創建了您的表單,因此您的表單值將映射到$ entity變量中。只需調用你的產品方法:$ entity-> getMinPrice(); $實體 - > getMaxPrice(); – 2015-04-01 12:47:18

+0

我編輯了這個問題。最低和最高價格不是實體的一部分。 我重複方法POST這個工程,但爲GET不起作用 – TanGio 2015-04-01 14:44:12

回答

0

表單配置中的方法需要匹配HTTP請求的方法。默認情況下,表單使用POST方法,所以你需要告訴它使用GET。

buildForm()方法將這個:

$builder->setMethod('GET'); 

然後在枝條模板,你可以使用form_start()功能,它會自動設置方法是GET。

相關問題