2013-08-01 33 views
6

Tôi đang cố gắng để nhúng một Bộ sưu tập của hình thức cũng giống như đưa ra ở đây - http://symfony.com/doc/current/cookbook/form/form_collections.htmlbáo lỗi khi cố gắng sử dụng các hình thức nhúng trong Symfony2

Tôi gần như viết lại mã từ đó nhưng tôi đã gặp hai vấn đề:

  1. FatalErrorException: Compile Error: Declaration of MyBundle\Form\Type\ExpenseType::setDefaultOptions() must be compatible with that of Symfony\Component\Form\FormTypeInterface::setDefaultOptions() in MyBundle\Form\Type\ExpenseType.php line 33

  2. chức năng form_start() không tồn tại.

Bạn có ý tưởng nào về cách giải quyết vấn đề đầu tiên không? Không có gì giúp: (

PS Tôi không thêm bất kỳ mã nào, vì nó giống như trong sách, tôi chỉ thay đổi tên (hoặc ít nhất là tôi nghĩ vậy), tôi sẽ thêm bất kỳ mã nào nếu cần.

ExpenseType.php

<?php 

namespace MyBundle\Form\Type; 

use Symfony\Component\Form\AbstractType; 
use Symfony\Component\Form\FormBuilderInterface; 

class ExpenseType extends AbstractType 
{ 
    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     $builder->add('name', 'text',array(
      'label' => ' ')); 

     $builder->add('description', 'textarea',array(
      'label' => ' ')); 

     $builder->add('expenseVariants', 'collection', array('type' => new ExpenseVairantType())); 

    } 

    public function setDefaultOptions(OptionsResolverInterface $resolver) 
    { 
     $resolver->setDefaults(array(
      'data_class' => 'MyBundle\Entity\Expense', 
     )); 
    } 

    public function getName() 
    { 
     return 'expense'; 
    } 
} 
+0

Bạn sẽ phải ít nhất cho chúng tôi thấy ExpenseType.php –

+0

Tôi đã cập nhật câu hỏi :) – Faery

Trả lời

18

bạn đang thiếu

use Symfony\Component\OptionsResolver\OptionsResolverInterface; 

từ nhập khẩu của bạn.

+0

oooh cảm ơn bạn rất nhiều! Tôi sẽ không bao giờ nhận thấy điều này. – Faery

Các vấn đề liên quan