1

我正在使用 Symfony 3.1.9 (localhost),并且我已经为多步骤表单安装了 CraueFormBundle。当我访问表单时,我500 internal server error在 longs 中没有任何内容(Symfony 不处理发生的问题)。

我在 apache 错误日志中有这个:

[Tue Jan 17 14:16:07.156688 2017] [auth_digest:notice] [pid 672:tid 576] AH01757: generating secret for digest authentication ... 
[Tue Jan 17 14:16:07.571803 2017] [mpm_winnt:notice] [pid 672:tid 576] AH00455: Apache/2.4.23 (Win64) PHP/5.6.25 configured -- resuming normal operations 
[Tue Jan 17 14:16:07.571803 2017] [mpm_winnt:notice] [pid 672:tid 576] AH00456: Apache Lounge VC14 Server built: Jul  1 2016 11:43:51 
[Tue Jan 17 14:16:07.571803 2017] [core:notice] [pid 672:tid 576] AH00094: Command line: 'c:\\wamp64\\bin\\apache\\apache2.4.23\\bin\\httpd.exe -d C:/wamp64/bin/apache/apache2.4.23' 
[Tue Jan 17 14:16:07.694118 2017] [mpm_winnt:notice] [pid 672:tid 576] AH00418: Parent: Created child process 7036 
[Tue Jan 17 14:16:09.106876 2017] [auth_digest:notice] [pid 7036:tid 548] AH01757: generating secret for digest authentication ... 
[Tue Jan 17 14:16:09.322450 2017] [mpm_winnt:notice] [pid 7036:tid 548] AH00354: Child: Starting 64 worker threads.

那64个工作线程是什么?!为什么我的表格不起作用?

编辑 !我在访问日志中有这个:

::1 - - [17/Jan/2017:15:34:12 +0100] "GET /app/web/app_dev.php HTTP/1.1" 200 25434
::1 - - [17/Jan/2017:15:34:18 +0100] "GET /app/web/app_dev.php/_wdt/ba8a4c HTTP/1.1" 200 30109
::1 - - [17/Jan/2017:15:34:20 +0100] "GET /app/web/app_dev.php/login HTTP/1.1" 302 388
::1 - - [17/Jan/2017:15:34:22 +0100] "GET /app/web/app_dev.php/admin/dashboard HTTP/1.1" 200 26834
::1 - - [17/Jan/2017:15:34:23 +0100] "GET /app/web/app_dev.php/_wdt/b39f6b HTTP/1.1" 200 31673
::1 - - [17/Jan/2017:15:34:41 +0100] "GET /app/web/app_dev.php/parent/dashboard HTTP/1.1" 200 26593
::1 - - [17/Jan/2017:15:34:44 +0100] "GET /app/web/app_dev.php/_wdt/2d0f65 HTTP/1.1" 200 30128
::1 - - [17/Jan/2017:15:34:45 +0100] "GET /app/web/app_dev.php/parent/show-children HTTP/1.1" 200 26698
::1 - - [17/Jan/2017:15:34:47 +0100] "GET /app/web/app_dev.php/_wdt/c8bf62 HTTP/1.1" 200 30139
::1 - - [17/Jan/2017:15:34:48 +0100] "GET /app/web/app_dev.php/parent/add-child HTTP/1.1" 500 -

我的代码: formData 类。

<?php

namespace VS\CrmBundle\Wizard;

use Doctrine\Common\Collections\ArrayCollection;
use VS\CrmBundle\Entity\MedicalRecord;
use VS\CrmBundle\Entity\Person;
use VS\CrmBundle\Entity\Relationship;

class AddChildWizard
{
    /**
     * Step 1
     *
     * @var Relationship
     */
    private $currenUserChildRelationship;

    /**
     * Step 1
     *
     * @var Person
     */
    private $child;

    /**
     * Step 2
     *
     * @var MedicalRecord
     */
    private $childsMedicalRecord;

    /**
     * Step 3
     *
     * This is a collection of Relationship entities
     *
     * @var ArrayCollection
     */
    private $childsFamily;

    public function __construct()
    {
        $this->childsFamily = new ArrayCollection();
    }

    /**
     * @return Relationship
     */
    public function getCurrenUserChildRelationship()
    {
        return $this->currenUserChildRelationship;
    }

    /**
     * @param Relationship $currenUserChildRelationship
     */
    public function setCurrenUserChildRelationship(Relationship $currenUserChildRelationship)
    {
        $this->currenUserChildRelationship = $currenUserChildRelationship;
    }

    /**
     * @return Person
     */
    public function getChild()
    {
        return $this->child;
    }

    /**
     * @param Person $child
     */
    public function setChild(Person $child)
    {
        $this->child = $child;
    }

    /**
     * @return MedicalRecord
     */
    public function getChildsMedicalRecord()
    {
        return $this->childsMedicalRecord;
    }

    /**
     * @param MedicalRecord $childsMedicalRecord
     */
    public function setChildsMedicalRecord(MedicalRecord $childsMedicalRecord)
    {
        $this->childsMedicalRecord = $childsMedicalRecord;
    }

    /**
     * @return ArrayCollection
     */
    public function getChildsFamily()
    {
        return $this->childsFamily;
    }

    /**
     * @param ArrayCollection $childsFamily
     */
    public function setChildsFamily($childsFamily)
    {
        $this->childsFamily = $childsFamily;
    }

}

表单流类:

<?php

namespace VS\CrmBundle\Form\Wizard\AddChild;

use Craue\FormFlowBundle\Form\FormFlow;
use Craue\FormFlowBundle\Form\FormFlowInterface;


class AddChildFlow extends FormFlow {
    protected function loadStepsConfig()
    {
        return array(
            array(
                'label' => 'ChildData',
                'form_type' => 'VS\CrmBundle\Form\Wizard\AddChild\AddChildStep1'
            ),
            array(
                'label' => 'ChildMedicalRecord',
                'form_type' => 'VS\CrmBundle\Form\Wizard\AddChild\AddChildStep2'
            ),
            array(
                'label' => 'ChildFamily',
                'form_type' => 'VS\CrmBundle\Form\Wizard\AddChild\AddChildStep3'
            ),
            array(
                'label' => 'confirmation',
            ),
        );
    }
}

步骤1 :

<?php

namespace VS\CrmBundle\Form\Wizard\AddChild;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use VS\CrmBundle\Entity\Person;
use VS\CrmBundle\Entity\Relationship;
use VS\CrmBundle\Form\PersonChildType;
use VS\CrmBundle\Form\RelationshipFromCurrentUserType;

class AddChildStep1 extends AbstractType {
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('currenUserChildRelationship', RelationshipFromCurrentUserType::class, array(
                'data_class' => Relationship::class
            ))
            ->add('child', PersonChildType::class, array(
                'data_class' => Person::class
            ));
    }

    public function getBlockPrefix()
    {
        return 'AddChildStep1';
    }
}

第2步 :

<?php

namespace VS\CrmBundle\Form\Wizard\AddChild;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use VS\CrmBundle\Entity\MedicalRecord;
use VS\CrmBundle\Form\MedicalRecordType;

class AddChildStep2 extends AbstractType {
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder->add('childsMedicalRecord', MedicalRecordType::class, array(
            'data_class' => MedicalRecord::class
        ));
    }

    public function getBlockPrefix()
    {
        return 'AddChildStep2';
    }
}

第 3 步:

<?php

namespace VS\CrmBundle\Form\Wizard\AddChild;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\CollectionType;
use Symfony\Component\Form\FormBuilderInterface;
use VS\CrmBundle\Form\RelationshipType;

class AddChildStep3 extends AbstractType {
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder->add('childsFamily', CollectionType::class, array(
            'entry_type' => RelationshipType::class,
            'allow_add' => true
        ));
    }

    public function getBlockPrefix()
    {
        return 'AddChildStep3';
    }
}

服务 :

vs_crm.form.flow.add_child:
    class: VS\CrmBundle\Form\Wizard\AddChild\AddChildFlow
    parent: craue.form.flow

和控制器动作:

public function addChildAction()
    {

        // Our form data class
        $formData = new AddChildWizard();

        // We call service (craue form flow)
        $flow = $this->get('vs_crm.form.flow.add_child');
        $flow->bind($formData);

        $form = $flow->createForm();



        if($flow->isValid($form))
        {
            $flow->saveCurrentStepData($form);

            if($flow->nextStep())
            {
                $form = $flow->createForm();
            }
            else
            {

                // flow finished
                //$em = $this->getDoctrine()->getManager();
                //$em->persist($formData);
                //$em->flush();

                //$flow->reset();
                //return $this->redirect();
                //return new JsonResponse(array('PERSIST AND FLUSH BRO'));
            }
        }

        return $this->render('VSCrmBundle:Parent:add-child.html.twig', array(
            'form' => $form->createView(),
            'flow' => $flow
        ));
    }

编辑:我可以在浏览器中看到的唯一内容是: 在此处输入图像描述

编辑号 2 :) Symfony dev.log

[2017-01-17 14:34:17] request.INFO: Matched route "{route}". {"route":"vs_crm_homepage","route_parameters":{"_controller":"VS\\CrmBundle\\Controller\\DefaultController::indexAction","_route":"vs_crm_homepage"},"request_uri":"http://localhost/app/web/app_dev.php/","method":"GET"} []
[2017-01-17 14:34:17] security.DEBUG: Read existing security token from the session. {"key":"_security_main"} []
[2017-01-17 14:34:17] doctrine.DEBUG: SELECT t0.id AS id_1, t0.first_name AS first_name_2, t0.last_name AS last_name_3, t0.email AS email_4, t0.password AS password_5, t0.roles AS roles_6, t0.born_on AS born_on_7, t0.created_at AS created_at_8, t0.updated_at AS updated_at_9, t0.is_archived AS is_archived_10, t0.is_validated AS is_validated_11, t0.family_situation AS family_situation_12, t0.profession AS profession_13, t0.slug AS slug_14, t15.id AS id_16, t15.drugs AS drugs_17, t15.allergies AS allergies_18, t15.specific_care AS specific_care_19, t15.previous_diseases AS previous_diseases_20, t15.health_notice AS health_notice_21, t15.special_diet AS special_diet_22, t15.sleep_patterns AS sleep_patterns_23, t15.other_notices AS other_notices_24, t15.fk_person_id AS fk_person_id_25, t15.fk_med_office_id AS fk_med_office_id_26, t0.fk_nursery_role_id AS fk_nursery_role_id_27 FROM person t0 LEFT JOIN medical_record t15 ON t15.fk_person_id = t0.id WHERE t0.id = ? [1] []
[2017-01-17 14:34:18] security.DEBUG: User was reloaded from a user provider. {"username":"admin@test.be","provider":"Symfony\\Bridge\\Doctrine\\Security\\User\\EntityUserProvider"} []
[2017-01-17 14:34:18] security.DEBUG: Stored the security token in the session. {"key":"_security_main"} []
[2017-01-17 14:34:18] request.INFO: Matched route "{route}". {"route":"_wdt","route_parameters":{"_controller":"web_profiler.controller.profiler:toolbarAction","token":"ba8a4c","_route":"_wdt"},"request_uri":"http://localhost/app/web/app_dev.php/_wdt/ba8a4c","method":"GET"} []
[2017-01-17 14:34:21] request.INFO: Matched route "{route}". {"route":"vs_crm_login","route_parameters":{"_controller":"VS\\CrmBundle\\Controller\\SecurityController::loginAction","_route":"vs_crm_login"},"request_uri":"http://localhost/app/web/app_dev.php/login","method":"GET"} []
[2017-01-17 14:34:21] security.DEBUG: Read existing security token from the session. {"key":"_security_main"} []
[2017-01-17 14:34:21] doctrine.DEBUG: SELECT t0.id AS id_1, t0.first_name AS first_name_2, t0.last_name AS last_name_3, t0.email AS email_4, t0.password AS password_5, t0.roles AS roles_6, t0.born_on AS born_on_7, t0.created_at AS created_at_8, t0.updated_at AS updated_at_9, t0.is_archived AS is_archived_10, t0.is_validated AS is_validated_11, t0.family_situation AS family_situation_12, t0.profession AS profession_13, t0.slug AS slug_14, t15.id AS id_16, t15.drugs AS drugs_17, t15.allergies AS allergies_18, t15.specific_care AS specific_care_19, t15.previous_diseases AS previous_diseases_20, t15.health_notice AS health_notice_21, t15.special_diet AS special_diet_22, t15.sleep_patterns AS sleep_patterns_23, t15.other_notices AS other_notices_24, t15.fk_person_id AS fk_person_id_25, t15.fk_med_office_id AS fk_med_office_id_26, t0.fk_nursery_role_id AS fk_nursery_role_id_27 FROM person t0 LEFT JOIN medical_record t15 ON t15.fk_person_id = t0.id WHERE t0.id = ? [1] []
[2017-01-17 14:34:21] security.DEBUG: User was reloaded from a user provider. {"username":"admin@test.be","provider":"Symfony\\Bridge\\Doctrine\\Security\\User\\EntityUserProvider"} []
[2017-01-17 14:34:22] security.DEBUG: Stored the security token in the session. {"key":"_security_main"} []
[2017-01-17 14:34:22] request.INFO: Matched route "{route}". {"route":"vs_crm_admin_dashboard","route_parameters":{"_controller":"VS\\CrmBundle\\Controller\\AdminController::dashboardAction","_route":"vs_crm_admin_dashboard"},"request_uri":"http://localhost/app/web/app_dev.php/admin/dashboard","method":"GET"} []
[2017-01-17 14:34:23] security.DEBUG: Read existing security token from the session. {"key":"_security_main"} []
[2017-01-17 14:34:23] doctrine.DEBUG: SELECT t0.id AS id_1, t0.first_name AS first_name_2, t0.last_name AS last_name_3, t0.email AS email_4, t0.password AS password_5, t0.roles AS roles_6, t0.born_on AS born_on_7, t0.created_at AS created_at_8, t0.updated_at AS updated_at_9, t0.is_archived AS is_archived_10, t0.is_validated AS is_validated_11, t0.family_situation AS family_situation_12, t0.profession AS profession_13, t0.slug AS slug_14, t15.id AS id_16, t15.drugs AS drugs_17, t15.allergies AS allergies_18, t15.specific_care AS specific_care_19, t15.previous_diseases AS previous_diseases_20, t15.health_notice AS health_notice_21, t15.special_diet AS special_diet_22, t15.sleep_patterns AS sleep_patterns_23, t15.other_notices AS other_notices_24, t15.fk_person_id AS fk_person_id_25, t15.fk_med_office_id AS fk_med_office_id_26, t0.fk_nursery_role_id AS fk_nursery_role_id_27 FROM person t0 LEFT JOIN medical_record t15 ON t15.fk_person_id = t0.id WHERE t0.id = ? [1] []
[2017-01-17 14:34:23] security.DEBUG: User was reloaded from a user provider. {"username":"admin@test.be","provider":"Symfony\\Bridge\\Doctrine\\Security\\User\\EntityUserProvider"} []
[2017-01-17 14:34:23] doctrine.DEBUG: SELECT t0.id AS id_1, t0.name AS name_2, t0.phone_number AS phone_number_3, t0.created_at AS created_at_4, t0.updated_at AS updated_at_5, t0.slug AS slug_6, t0.fk_address_id AS fk_address_id_7 FROM Nursery t0 INNER JOIN nursery_staff ON t0.id = nursery_staff.nursery_id WHERE nursery_staff.staff_id = ? [1] []
[2017-01-17 14:34:23] security.DEBUG: Stored the security token in the session. {"key":"_security_main"} []
[2017-01-17 14:34:24] request.INFO: Matched route "{route}". {"route":"_wdt","route_parameters":{"_controller":"web_profiler.controller.profiler:toolbarAction","token":"b39f6b","_route":"_wdt"},"request_uri":"http://localhost/app/web/app_dev.php/_wdt/b39f6b","method":"GET"} []
[2017-01-17 14:34:42] request.INFO: Matched route "{route}". {"route":"vs_crm_parent_dashboard","route_parameters":{"_controller":"VS\\CrmBundle\\Controller\\ParentController::dashboardAction","_route":"vs_crm_parent_dashboard"},"request_uri":"http://localhost/app/web/app_dev.php/parent/dashboard","method":"GET"} []
[2017-01-17 14:34:42] security.DEBUG: Read existing security token from the session. {"key":"_security_main"} []
[2017-01-17 14:34:43] doctrine.DEBUG: SELECT t0.id AS id_1, t0.first_name AS first_name_2, t0.last_name AS last_name_3, t0.email AS email_4, t0.password AS password_5, t0.roles AS roles_6, t0.born_on AS born_on_7, t0.created_at AS created_at_8, t0.updated_at AS updated_at_9, t0.is_archived AS is_archived_10, t0.is_validated AS is_validated_11, t0.family_situation AS family_situation_12, t0.profession AS profession_13, t0.slug AS slug_14, t15.id AS id_16, t15.drugs AS drugs_17, t15.allergies AS allergies_18, t15.specific_care AS specific_care_19, t15.previous_diseases AS previous_diseases_20, t15.health_notice AS health_notice_21, t15.special_diet AS special_diet_22, t15.sleep_patterns AS sleep_patterns_23, t15.other_notices AS other_notices_24, t15.fk_person_id AS fk_person_id_25, t15.fk_med_office_id AS fk_med_office_id_26, t0.fk_nursery_role_id AS fk_nursery_role_id_27 FROM person t0 LEFT JOIN medical_record t15 ON t15.fk_person_id = t0.id WHERE t0.id = ? [1] []
[2017-01-17 14:34:44] security.DEBUG: User was reloaded from a user provider. {"username":"admin@test.be","provider":"Symfony\\Bridge\\Doctrine\\Security\\User\\EntityUserProvider"} []
[2017-01-17 14:34:44] doctrine.DEBUG: SELECT t0.id AS id_1, t0.name AS name_2, t0.phone_number AS phone_number_3, t0.created_at AS created_at_4, t0.updated_at AS updated_at_5, t0.slug AS slug_6, t0.fk_address_id AS fk_address_id_7 FROM Nursery t0 INNER JOIN nursery_staff ON t0.id = nursery_staff.nursery_id WHERE nursery_staff.staff_id = ? [1] []
[2017-01-17 14:34:44] security.DEBUG: Stored the security token in the session. {"key":"_security_main"} []
[2017-01-17 14:34:45] request.INFO: Matched route "{route}". {"route":"_wdt","route_parameters":{"_controller":"web_profiler.controller.profiler:toolbarAction","token":"2d0f65","_route":"_wdt"},"request_uri":"http://localhost/app/web/app_dev.php/_wdt/2d0f65","method":"GET"} []
[2017-01-17 14:34:46] request.INFO: Matched route "{route}". {"route":"vs_crm_show_children","route_parameters":{"_controller":"VS\\CrmBundle\\Controller\\RegisterChildController::showChildrenAction","_route":"vs_crm_show_children"},"request_uri":"http://localhost/app/web/app_dev.php/parent/show-children","method":"GET"} []
[2017-01-17 14:34:46] security.DEBUG: Read existing security token from the session. {"key":"_security_main"} []
[2017-01-17 14:34:46] doctrine.DEBUG: SELECT t0.id AS id_1, t0.first_name AS first_name_2, t0.last_name AS last_name_3, t0.email AS email_4, t0.password AS password_5, t0.roles AS roles_6, t0.born_on AS born_on_7, t0.created_at AS created_at_8, t0.updated_at AS updated_at_9, t0.is_archived AS is_archived_10, t0.is_validated AS is_validated_11, t0.family_situation AS family_situation_12, t0.profession AS profession_13, t0.slug AS slug_14, t15.id AS id_16, t15.drugs AS drugs_17, t15.allergies AS allergies_18, t15.specific_care AS specific_care_19, t15.previous_diseases AS previous_diseases_20, t15.health_notice AS health_notice_21, t15.special_diet AS special_diet_22, t15.sleep_patterns AS sleep_patterns_23, t15.other_notices AS other_notices_24, t15.fk_person_id AS fk_person_id_25, t15.fk_med_office_id AS fk_med_office_id_26, t0.fk_nursery_role_id AS fk_nursery_role_id_27 FROM person t0 LEFT JOIN medical_record t15 ON t15.fk_person_id = t0.id WHERE t0.id = ? [1] []
[2017-01-17 14:34:46] security.DEBUG: User was reloaded from a user provider. {"username":"admin@test.be","provider":"Symfony\\Bridge\\Doctrine\\Security\\User\\EntityUserProvider"} []
[2017-01-17 14:34:46] doctrine.DEBUG: SELECT t0.id AS id_1, t0.fk_rel_role AS fk_rel_role_2, t0.source_pid AS source_pid_3, t0.destination_pid AS destination_pid_4 FROM relationship t0 WHERE t0.destination_pid = ? [1] []
[2017-01-17 14:34:47] doctrine.DEBUG: SELECT t0.id AS id_1, t0.name AS name_2, t0.phone_number AS phone_number_3, t0.created_at AS created_at_4, t0.updated_at AS updated_at_5, t0.slug AS slug_6, t0.fk_address_id AS fk_address_id_7 FROM Nursery t0 INNER JOIN nursery_staff ON t0.id = nursery_staff.nursery_id WHERE nursery_staff.staff_id = ? [1] []
[2017-01-17 14:34:47] security.DEBUG: Stored the security token in the session. {"key":"_security_main"} []
[2017-01-17 14:34:47] request.INFO: Matched route "{route}". {"route":"_wdt","route_parameters":{"_controller":"web_profiler.controller.profiler:toolbarAction","token":"c8bf62","_route":"_wdt"},"request_uri":"http://localhost/app/web/app_dev.php/_wdt/c8bf62","method":"GET"} []
[2017-01-17 14:34:48] request.INFO: Matched route "{route}". {"route":"vs_crm_add_child","route_parameters":{"_controller":"VS\\CrmBundle\\Controller\\RegisterChildController::addChildAction","_route":"vs_crm_add_child"},"request_uri":"http://localhost/app/web/app_dev.php/parent/add-child","method":"GET"} []
[2017-01-17 14:34:49] security.DEBUG: Read existing security token from the session. {"key":"_security_main"} []
[2017-01-17 14:34:49] doctrine.DEBUG: SELECT t0.id AS id_1, t0.first_name AS first_name_2, t0.last_name AS last_name_3, t0.email AS email_4, t0.password AS password_5, t0.roles AS roles_6, t0.born_on AS born_on_7, t0.created_at AS created_at_8, t0.updated_at AS updated_at_9, t0.is_archived AS is_archived_10, t0.is_validated AS is_validated_11, t0.family_situation AS family_situation_12, t0.profession AS profession_13, t0.slug AS slug_14, t15.id AS id_16, t15.drugs AS drugs_17, t15.allergies AS allergies_18, t15.specific_care AS specific_care_19, t15.previous_diseases AS previous_diseases_20, t15.health_notice AS health_notice_21, t15.special_diet AS special_diet_22, t15.sleep_patterns AS sleep_patterns_23, t15.other_notices AS other_notices_24, t15.fk_person_id AS fk_person_id_25, t15.fk_med_office_id AS fk_med_office_id_26, t0.fk_nursery_role_id AS fk_nursery_role_id_27 FROM person t0 LEFT JOIN medical_record t15 ON t15.fk_person_id = t0.id WHERE t0.id = ? [1] []
[2017-01-17 14:34:49] security.DEBUG: User was reloaded from a user provider. {"username":"admin@test.be","provider":"Symfony\\Bridge\\Doctrine\\Security\\User\\EntityUserProvider"} []

编辑3号!感谢 dbrunmann,我在以下位置找到了这个wamp->PHP->PHP error log

[17-Jan-2017 14:34:55 UTC] PHP   1. {main}() C:\wamp64\www\app\web\app_dev.php:0

[17-Jan-2017 14:34:55 UTC] PHP   2. Symfony\Component\HttpKernel\Kernel->handle() C:\wamp64\www\app\web\app_dev.php:28

[17-Jan-2017 14:34:55 UTC] PHP   3. Symfony\Component\HttpKernel\HttpKernel->handle() C:\wamp64\www\app\vendor\symfony\symfony\src\Symfony\Component\HttpKernel\Kernel.php:169

[17-Jan-2017 14:34:55 UTC] PHP   4. Symfony\Component\HttpKernel\HttpKernel->handleRaw() C:\wamp64\www\app\vendor\symfony\symfony\src\Symfony\Component\HttpKernel\HttpKernel.php:68

[17-Jan-2017 14:34:55 UTC] PHP   5. call_user_func_array:{C:\wamp64\www\app\vendor\symfony\symfony\src\Symfony\Component\HttpKernel\HttpKernel.php:153}() C:\wamp64\www\app\vendor\symfony\symfony\src\Symfony\Component\HttpKernel\HttpKernel.php:153

[17-Jan-2017 14:34:55 UTC] PHP   6. VS\CrmBundle\Controller\RegisterChildController->addChildAction() C:\wamp64\www\app\vendor\symfony\symfony\src\Symfony\Component\HttpKernel\HttpKernel.php:153

[17-Jan-2017 14:34:55 UTC] PHP   7. Craue\FormFlowBundle\Form\FormFlow->createForm() C:\wamp64\www\app\src\VS\CrmBundle\Controller\RegisterChildController.php:44

[17-Jan-2017 14:34:55 UTC] PHP   8. Craue\FormFlowBundle\Form\FormFlow->createFormForStep() C:\wamp64\www\app\vendor\craue\formflow-bundle\Form\FormFlow.php:751

[17-Jan-2017 14:34:55 UTC] PHP   9. Symfony\Component\Form\FormFactory->create() C:\wamp64\www\app\vendor\craue\formflow-bundle\Form\FormFlow.php:953

[17-Jan-2017 14:34:55 UTC] PHP  10. Symfony\Component\Form\FormBuilder->getForm() C:\wamp64\www\app\vendor\symfony\symfony\src\Symfony\Component\Form\FormFactory.php:39
... 100500 times ...
[17-Jan-2017 14:34:56 UTC] PHP 235. Symfony\Component\Form\FormBuilder->getForm() C:\wamp64\www\app\vendor\symfony\symfony\src\Symfony\Component\Form\FormBuilder.php:221

[17-Jan-2017 14:34:56 UTC] PHP 236. Symfony\Component\Form\FormBuilder->resolveChildren() C:\wamp64\www\app\vendor\symfony\symfony\src\Symfony\Component\Form\FormBuilder.php:215

[17-Jan-2017 14:34:56 UTC] PHP 237. Symfony\Component\Form\FormBuilder->create() C:\wamp64\www\app\vendor\symfony\symfony\src\Symfony\Component\Form\FormBuilder.php:269

[17-Jan-2017 14:34:56 UTC] PHP 238. Symfony\Component\Form\FormFactory->createNamedBuilder() C:\wamp64\www\app\vendor\symfony\symfony\src\Symfony\Component\Form\FormBuilder.php:106

[17-Jan-2017 14:34:56 UTC] PHP 239. Symfony\Component\Form\Extension\DataCollector\Proxy\ResolvedTypeDataCollectorProxy->buildForm() C:\wamp64\www\app\vendor\symfony\symfony\src\Symfony\Component\Form\FormFactory.php:89

[17-Jan-2017 14:34:56 UTC] PHP 240. Symfony\Component\Form\ResolvedFormType->buildForm() C:\wamp64\www\app\vendor\symfony\symfony\src\Symfony\Component\Form\Extension\DataCollector\Proxy\ResolvedTypeDataCollectorProxy.php:102

[17-Jan-2017 14:34:56 UTC] PHP 241. Symfony\Component\Form\Extension\Core\Type\CollectionType->buildForm() C:\wamp64\www\app\vendor\symfony\symfony\src\Symfony\Component\Form\ResolvedFormType.php:126

[17-Jan-2017 14:34:56 UTC] PHP 242. Symfony\Component\Form\FormBuilder->getForm() C:\wamp64\www\app\vendor\symfony\symfony\src\Symfony\Component\Form\Extension\Core\Type\CollectionType.php:40

[17-Jan-2017 14:34:56 UTC] PHP 243. Symfony\Component\Form\FormBuilder->resolveChildren() C:\wamp64\www\app\vendor\symfony\symfony\src\Symfony\Component\Form\FormBuilder.php:215

[17-Jan-2017 14:34:56 UTC] PHP 244. Symfony\Component\Form\FormBuilder->create() C:\wamp64\www\app\vendor\symfony\symfony\src\Symfony\Component\Form\FormBuilder.php:269

[17-Jan-2017 14:34:56 UTC] PHP 245. Symfony\Component\Form\FormFactory->createBuilderForProperty() C:\wamp64\www\app\vendor\symfony\symfony\src\Symfony\Component\Form\FormBuilder.php:109

[17-Jan-2017 14:34:56 UTC] PHP 246. Symfony\Component\Form\FormFactory->createNamedBuilder() C:\wamp64\www\app\vendor\symfony\symfony\src\Symfony\Component\Form\FormFactory.php:130

[17-Jan-2017 14:34:56 UTC] PHP 247. Symfony\Component\Form\Extension\DataCollector\Proxy\ResolvedTypeDataCollectorProxy->createBuilder() C:\wamp64\www\app\vendor\symfony\symfony\src\Symfony\Component\Form\FormFactory.php:85

[17-Jan-2017 14:34:56 UTC] PHP 248. Symfony\Component\Form\ResolvedFormType->createBuilder() C:\wamp64\www\app\vendor\symfony\symfony\src\Symfony\Component\Form\Extension\DataCollector\Proxy\ResolvedTypeDataCollectorProxy.php:81

[17-Jan-2017 14:34:56 UTC] PHP 249. Symfony\Component\OptionsResolver\OptionsResolver->resolve() C:\wamp64\www\app\vendor\symfony\symfony\src\Symfony\Component\Form\ResolvedFormType.php:95

[17-Jan-2017 14:34:56 UTC] PHP 250. Symfony\Component\OptionsResolver\OptionsResolver->offsetGet() C:\wamp64\www\app\vendor\symfony\symfony\src\Symfony\Component\OptionsResolver\OptionsResolver.php:716

[17-Jan-2017 14:34:56 UTC] PHP 251. Symfony\Bridge\Doctrine\Form\Type\DoctrineType->Symfony\Bridge\Doctrine\Form\Type\{closure}() C:\wamp64\www\app\vendor\symfony\symfony\src\Symfony\Component\OptionsResolver\OptionsResolver.php:784

[17-Jan-2017 14:34:56 UTC] PHP 252. Symfony\Component\OptionsResolver\OptionsResolver->offsetGet() C:\wamp64\www\app\vendor\symfony\symfony\src\Symfony\Component\OptionsResolver\OptionsResolver.php:164

[17-Jan-2017 14:34:56 UTC] PHP 253. Symfony\Bridge\Doctrine\Form\Type\DoctrineType->Symfony\Bridge\Doctrine\Form\Type\{closure}() C:\wamp64\www\app\vendor\symfony\symfony\src\Symfony\Component\OptionsResolver\OptionsResolver.php:885

[17-Jan-2017 14:34:56 UTC] PHP 254. Symfony\Component\Form\ChoiceList\Factory\CachingFactoryDecorator::generateHash() C:\wamp64\www\app\vendor\symfony\symfony\src\Symfony\Bridge\Doctrine\Form\Type\DoctrineType.php:231

[17-Jan-2017 14:34:56 UTC] PHP 255. array_walk_recursive() C:\wamp64\www\app\vendor\symfony\symfony\src\Symfony\Component\Form\ChoiceList\Factory\CachingFactoryDecorator.php:62

[17-Jan-2017 14:34:56 UTC] PHP 256. Symfony\Component\Form\ChoiceList\Factory\CachingFactoryDecorator::Symfony\Component\Form\ChoiceList\Factory\{closure}() C:\wamp64\www\app\vendor\symfony\symfony\src\Symfony\Component\Form\ChoiceList\Factory\CachingFactoryDecorator.php:62

所以我可以看到 Symfony 无法为我的流程创建表单。问题可能出在哪里?

4

1 回答 1

1

那么问题就解决了。我回答是否可以帮助某人...

起初,我尝试使用“整个流程的一种表单类型”(CraueFormFlow Bundle 文档中的方法 A),并为此编辑了我的 PersonType 表单。然后这不是很好,所以我改变了方法 B:“每一步一个表单类型”,但我忘了再次改变我的 PersonType。

所以,我想我有类似 Atype 询问 Btype 和 Btype 询问 Atype 等的无限循环。

于 2017-01-18T10:31:12.670 回答