1

このトピックに関する他の質問を読みましたが、私のアプリはまだ機能しません:(

これが私のコードです:

class ChooseCatType extends AbstractType
{
    protected $user;

    function __construct(\EM\MyFriendsBundle\Entity\User  $user) 
    {
        $this->user = $user;
    }


     public function buildForm(FormBuilder $builder, array $options)
    {
        $builder->add('name', 'entity', array(
            'class' => 'EMMyFriendsBundle:Category',
            'property' => 'name',
            'query_builder' => function ($repository) use ($user)
                { return $repository->createQueryBuilder('cat')
                                    ->select('cat')
                                    ->where('cat.user', ':user')
                                    ->setParameter('user', $user);
                },
                        ));
    }

    public function getName()
        {
            return 'choose_category';
        }
    }

これは私のコントローラーにあります:

$cat = new Category();

        $dd_form = $this->createForm(new \EM\MyFriendsBundle\Entity\ChooseCatType($user), $cat);

しかし、エラーが発生します:

Notice: Undefined variable: user in C:\xampp\htdocs\MyFriends\src\EM\MyFriendsBundle\Entity\ChooseCatType.php line 24

これはuseステートメントの行です。私のコードと、具体的なリポジトリを使用している他の関連する質問への回答には違いがありますが、これは問題ではないと思います。それともそうですか?解決策を見つけるのを手伝ってください。

4

1 に答える 1

2

エラーは、知っておく必要のあるすべてのことを示しています。定義されていない変数($ user)を使用しています。$ builder-> add行の前にこれを追加するだけです:

$user = $this->user;
于 2012-09-11T15:52:42.963 に答える