- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个实体
Product:
name # string
country # entity
categories #entity many-many
我有那个实体的表单
产品类型: 姓名 类别
现在我需要按国家/地区筛选类别,但我不想在构建表单时显示国家/地区参数
//...
$entity = new Entity\Product();
$entity->setCountry($this->getUser()->getProfile()->getCountry());
$form = $this->createForm(new Form\ProductType(), $entity);
return array('form' => $form->createView());
我想在 ProductType 类中按国家过滤类别,如何实现?
我如何将 $country 值传递给查询构建器?
//...
->add('categories', 'entity', array(
'class' => 'MyBundle:Category',
'query_builder' => function(EntityRepository $er) {
return $er->createQueryBulder('c');
}
)
最佳答案
您正在寻找可以传递给表单类的 options
数组。将此添加到您的 FormType:
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'country' => null
));
}
然后像这样调用 FormType
:
$this->createForm(new Form\ProductType(), $entity, array(
'country' => $country
));
然后在您的 buildForm
方法中访问 $country
,如下所示:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$country = $options['country'];
从那里你可以建立你自己的 queryBuilder仅选择您需要的产品。
编辑:要访问 queryBuilder 中的 $country
变量,您应该使用 use
statement .它看起来像这样:
->add('categories', 'entity', array(
'class' => 'MyBundle:Category',
'query_builder' => function (EntityRepository $er) use($country) {
// here you can use the $country variable in your anonymous function.
return $er->createQueryBuilder('c');
}
)
)
关于php - 将参数从实体传递到 query_builder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17097513/
我有一个实体 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(
我是一名优秀的程序员,十分优秀!