【问题标题】:Undefined method named isSubmitted? Symfony名为 isSubmitted 的未定义方法? Symfony
【发布时间】:2017-12-15 21:05:25
【问题描述】:

所以我之前做过这个,没有错误,可能是symfony2,现在是symfony3,可能不是相关问题,只是说。我该如何解决这个问题?

错误:

Attempted to call an undefined method named "isSubmitted" of class "Symfony\Component\Form\FormView".
500 Internal Server Error - UndefinedMethodException

代码:

namespace AppBundle\Controller;

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\FileType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\AbstractType;
use AppBundle\Entity\Submission;
use Symfony\Component\Form\Extension\Core\Type\TextType;


use Symfony\Component\Form\Extension\Core\Type\FormType;
use Symfony\Component\HttpFoundation\Response;


use Symfony\Component\Form\AbstractTypeExtension;
use Symfony\Component\Form\FormView;
use Symfony\Component\Form\FormInterface;


class DefaultController extends Controller
{
    /**
     * @Route("/", name="homepage")
     */
    public function indexAction(Request $request)
    {

        $variables = array();

        $submission = new Submission();
        $form = $this->createFormBuilder($submission)
            ->add('name', TextType::class)
            ->add('phonenumber', TextType::class)
            ->add('email', TextType::class)
            ->add('postal', TextType::class)
            ->add('housing', TextType::class)
            ->add('project', TextType::class)
            ->add('motivation', TextType::class)
            ->add('save', SubmitType::class, array('label' => 'Create submission'))
            ->getForm()->createView();


        var_dump($form->isSubmitted());
        die();
        if ($form->isSubmitted() && $form->isValid()) {
            print_r("yeay");
            die();
            $em = $this->getDoctrine()->getManager();
            $em->persist($submission);
            $em->flush();
        }


            // $variables['form'] = $form;
        // replace this example code with whatever you need
        return $this->render('AppBundle::main.html.twig', [
            'base_dir' => realpath($this->getParameter('kernel.root_dir').'/..'),
            'form' => $form,
        ]);
    }
}

【问题讨论】:

    标签: forms symfony


    【解决方案1】:

    您在表单视图而不是表单上调用了isSubmitted()form view 对象没有这个方法。

    像这样创建表单:

    $form = $this->createFormBuilder($submission)
        ->add('name', TextType::class)
        ->add('phonenumber', TextType::class)
        // ...
        ->getForm();
    

    在将视图传递给模板之前创建视图:

    return $this->render('AppBundle::main.html.twig', [
        'form' => $form->createView(),
    ]);
    

    【讨论】:

    • 啊,我明白了!谢谢:)
    • 2 分钟 :) 顺便说一句,现在当我发布它的罚款,但 isSubmitted 是假的,你在我的代码中看到更多错误吗?
    • 堆栈溢出不是您的个人调试服务;)
    • 好吧,我们都有好日子和坏日子,今天不太好,有时我没有我的橡皮鸭;p link@Jakub Zalas 那我去哪里?跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-03
    • 2019-04-20
    • 2019-07-21
    • 2012-02-28
    相关资源
    最近更新 更多