为什么我的表单没有在symfony 4中提交?

时间:2018-05-14 09:50:56

标签: forms symfony

我的控制器就像我从不点击提交按钮一样。

我的控制器:

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder->add('regionsset', TextType::class, array(
                'required' => false))
            ->add('save', SubmitType::class, array(
                'attr' => array('class' => 'save')));
}

我的表格:

{{ form_start(form, {'action' : path('app_region_list')} ) }}
       {{ form_widget(form.regionsset, {'attr': {'class': 'foo'}}) }}
       {{ form_widget(form.save, { 'label': 'Save' }) }}
{{ form_end(form) }}

我的观点:

if ($editForm->isSubmitted())

当我点击提交按钮时,控制器永远不会进入第一个测试@Override public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, final int position){ if (isDateExpired(listItems.get(position).getStartDate(),listItems.get(position).getEndDate())){ viewHolder.dealsExpiredtextview.setVisibility(View.GONE); }else { viewHolder.dealsExpiredtextview.setVisibility(View.VISIBLE); } }

我错过了什么?

2 个答案:

答案 0 :(得分:1)

您忘记在表单中处理请求。创建表单($ editForm)后,您必须按如下方式处理请求:

$editForm->handleRequest($request);

之后,方法isSubmitted()将返回true。

答案 1 :(得分:0)

试试这段代码。它将解决问题。

use Symfony\Component\HttpFoundation\Request;
.
.
.
public function listAction(Request $request, RegionsService $service )
{
    $regions = $service->getRegionList();

    $editForm = $this->createForm('App\Form\RegionListType');
    $editForm->handleRequest($request);

    if ($editForm->isSubmitted() && $editForm->isValid()) {

        $task = $editForm->getData();
        dump($task);
        die();
        ...
    }        

    return $this->render('parameter/region.list.html.twig', [
        'form'   => $editForm->createView(),
        'regions'   => $regions

    ]);
    ...