- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这个错误:
“可捕获的 fatal error :传递给 Intranet\RhBundle\Form\AvatarFormType::Intranet\RhBundle\Form{closure}() 的参数 1 必须是 Intranet\UserBundle\Entity\ImageRepository 的实例,Doctrine 的实例\ORM\EntityRepository 给定,调用在 C:\wamp\www\projet\vendor\symfony\symfony\src\Symfony\Bridge\Doctrine\Form\ChoiceList\ORMQueryBuilderLoader.php 第 56 行,定义在 C:\wamp\www\projet\src\Intranet\RhBundle\Form\AvatarFormType.php 第 24 行”
当我开始搜索时,我发现一个常见的错误是关于存储库中的方法。但也许没关系...
这是我的图片库:
public function getImageUser(User $user)
{
$qb = $this->createQueryBuilder('i')
->where('i.user = :user ')
->setParameter('user', $user);
// Et on retourne simplement le QueryBuilder, et non la Query
return $qb;
这是我的AvatarFormType
:
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
//die(var_dump($options['data']));
$builder
->add('avatar', 'entity', array(
'class' => 'IntranetUserBundle:Image',
'property' => 'alt',
'query_builder' => function(ImageRepository $r) use($options) {
return $r->getImageUser($options['user']);}
)
);
}
关系:
/**
* @ORM\OneToOne(targetEntity="Intranet\UserBundle\Entity\Image", cascade={"persist", "remove"})
* @Assert\Valid()
*/
private $avatar;
这是我的 Controller :
public function imagesDeAction(Request $request, User $user) {
$form = $this->createForm(new AvatarFormType(), $user, array('user' => $user));
$images = $this->getDoctrine()
->getRepository('IntranetUserBundle:Image')
->findByUser($user);
if ($request->getMethod() == 'POST') {
$form->handleRequest($request);
if ($form->isValid()) {
$em = $this->getDoctrine()->getManager();
$user->setAvatar($request->avatar);;
$em->persist($user);
$em->flush();
}
}
$avatar = $user->getAvatar();
return $this->render('IntranetRhBundle:Image:imagesDe.html.twig',array('user' => $user,'images' => $images, 'form' => $form->createView()));
}
用户在私有(private)目录下有一些图片,我想选择一个头像。User 和 Image 之间已经存在 ManyToMany 关系,而 User 和 Image 之间已经存在 OneToOne(如我所注意到的)。
我正在尝试构建一个选择列表,其中仅包含具有参数的特定用户的照片。我找到的解决方案都无法有效解决此错误。
我不确定我是否必须使用 use($options) 和 $options['data'] 调用我的函数,但是使用 var_dump 我在 $options['data'] 上看到了我的用户。
编辑:
我带来了一点精确度:ImageReposiroty 好像没找到,虽然可以用。我没有错误消息“找不到类”。但是如果我把 EntityReposirtoy 放在 bug 消失,我有这个 symfony 错误消息:
Expected argument of type "Doctrine\ORM\QueryBuilder", "array" given
但我知道我必须调用 ImageRepository 而不是 EntityRepository...
最佳答案
感谢@R。 Canser Yanbakan 给了我一个例子,我自己解决我的问题!
在我的实体中我有 * @ORM\Entity 但是为了使用 reposiroty 我必须这样调用它:
* @ORM\Entity(repositoryClass="Intranet\UserBundle\Entity\ImageRepository")
正确的 BuildForm 是:
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('avatar', 'entity', array(
'class' => 'IntranetUserBundle:Image',
'property' => 'alt' ,
'query_builder' => function(ImageRepository $r) use($options) {
return $r->getImagesUser($options['user']);}
)
);
}
正确的createForm是:
$form = $this->createForm(new AvatarFormType(), $user, array('user' => $user));
$user选择用户的头像,query_builder给定的参数数组
关于php - 带有参数的 Symfony2 表单 query_builder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23739569/
我有一个实体 Product: name # string country # entity categories #entity many-many 我有那个实体的表单 产品类型: 姓名
我正在使用实体字段类型 query_builder 在下拉列表中仅显示这些不是父项的类型 (parent_id == null)。我的 ProductionType 实体: createQueryBu
我有这个错误: “可捕获的 fatal error :传递给 Intranet\RhBundle\Form\AvatarFormType::Intranet\RhBundle\Form{closure
当我在 Symfony2 中创建实体字段时,如何指定生成的选择选项字段的值? 这是我的实体字段的片段: ->add('preferred_language', 'entity', array(
我需要自定义排序 entity type 字段,但没有 query_builder选项。我需要根据一些在数据库级别不可用的信息对其进行排序(因此,不使用 query_builder )。 有没有办法对
我有我的自定义表单,它是各种实体的组合,使用以下代码对最终用户有意义: $form = $this->container->get('form.factory')->createNamedBuilde
在 CollectionType 中使用 EntityType 时,是否可以在 EntityType 的 query_builder 函数中访问当前集合对象? 主窗体: class UsersType
这是我的问题。我在 symfony 2.1 上使用 buildForm 方法来构建我的表单。使用以下代码一切正常: $builder->add('combat','entity',array(
我是一名优秀的程序员,十分优秀!