Tak, próbuję osadzić jedną postać w drugiej bez tworzenia klasy dla formularzy. Herezje co ive gotSymfony2 Subformy
$form = $this
->buildForm('UserAlert', $alert)
->add('Alert', 'entity', array('class' => 'Blah\MgmtBundle\Entity\Alert', 'property' => 'name', 'required' => true))
->add('Site', 'entity', array('class' => 'Blah\MgmtBundle\Entity\Site', 'property' => 'name', 'required' => false))
->add('Keyword', 'entity', array('class' => 'Blah\MgmtBundle\Entity\Keyword', 'property' => 'name', 'required' => false))
->add('Variant', 'entity', array('class' => 'Blah\MgmtBundle\Entity\Variant', 'property' => 'name', 'required' => false))
->add('Name', 'text');
$uac = $alert->getUserAlertConfig();
$subform = $this
->buildForm('UserAlertConfig', $uac)
->add('EmailAlert', 'choice', array('choices' => array('1' => 'Yes', '0' => 'No'), 'required' => true, 'label' => 'Email Alerts'))
->add('EmailHours', 'text', array('required' => false, 'label' => 'Email Alert Hours'))
->add('TextAlert', 'choice', array('choices' => array('1' => 'Yes', '0' => 'No'), 'required' => true, 'label' => 'Text Alerts'))
->add('TextHours', 'text', array('required' => false, 'label' => 'Text Alert Hours'));
$form->add($subform);
$form = $form->getForm();
jednak na funkcji getForm()
, jego powiedzenie
Neither property "form" nor method "getForm()" nor method "isForm()" exists in class "Blah\MgmtBundle\Entity\UserAlert"
ktoś ma jakiś pomysł, jak im podobno dostać to do pracy za pomocą rzeczy quickloading?
herezje buildForm
public function buildForm($model = '', $data)
{
if (empty($model)) {
throw new \Exception("Must define a model");
}
return $this->get('form.factory')->createBuilder('form', $data, array('data_class' => "\\Blah\\MgmtBundle\\Entity\\$model"));
}
Stack Trace
in /mnt/www/reporting/vendor/symfony/src/Symfony/Component/Form/Util/PropertyPath.php at line 314
at PropertyPath ->readProperty (object(UserAlert), '0')
in /mnt/www/reporting/vendor/symfony/src/Symfony/Component/Form/Util/PropertyPath.php at line 191
at PropertyPath ->getValue (object(UserAlert))
in /mnt/www/reporting/vendor/symfony/src/Symfony/Component/Form/Extension/Core/DataMapper/PropertyPathMapper.php at line 64
at PropertyPathMapper ->mapDataToForm (object(UserAlert), object(Form))
in /mnt/www/reporting/vendor/symfony/src/Symfony/Component/Form/Extension/Core/DataMapper/PropertyPathMapper.php at line 55
at PropertyPathMapper ->mapDataToForms (object(UserAlert), array('_token' => object(Form), 'Alert' => object(Form), 'Site' => object(Form), 'Keyword' => object(Form), 'Variant' => object(Form), 'Name' => object(Form), 'form' => object(Form)))
in /mnt/www/reporting/vendor/symfony/src/Symfony/Component/Form/Form.php at line 404
at Form ->setData (object(UserAlert))
in /mnt/www/reporting/vendor/symfony/src/Symfony/Component/Form/FormBuilder.php at line 659
at FormBuilder ->getForm()
in /mnt/www/reporting/src/Blah/MgmtBundle/Controller/AlertController.php at line 96
at AlertController ->editAction ('1')
in at line
at call_user_func_array (array(object(AlertController), 'editAction'), array('1'))
in kernel.root_dir/bootstrap.php.cache at line 438
at HttpKernel ->handleRaw (object(Request), '1')
in kernel.root_dir/bootstrap.php.cache at line 416
at HttpKernel ->handle (object(Request), '1', true)
in /mnt/www/reporting/vendor/symfony/src/Symfony/Bundle/FrameworkBundle/HttpKernel.php at line 44
at HttpKernel ->handle (object(Request), '1', true)
in kernel.root_dir/bootstrap.php.cache at line 612
at Kernel ->handle (object(Request))
in /mnt/www/reporting/web/app_dev.php at line 12
Czy ten kod kontrolera? Lub niestandardowy kod typu formularza? –
jego w kontrolerze, przepraszam – Ascherer
A gdzie jest określona metoda 'buildForm'? Czy mógłbyś opublikować swój kod źródłowy? –