我有一段时间的问题,我已经在这个主题上阅读了很多类似的问题,但在我的情况下无法实现答案.
我有一个用Ajax填充的select字段.所以在我的表单构建器中我有这个代码:
VilleType.php
/**
* @ORM\Entity(repositoryClass="MDB\AnnonceBundle\Entity\RegisterRepository")
*/
class VilleType extends AbstractType {
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options) {
$builder
->add('nomComplet', 'choice'
);
}
/**
* @param OptionsResolverInterface $resolver
*/
public function setDefaultOptions(OptionsResolverInterface $resolver) {
$resolver->setDefaults(array(
'data_class' => 'MDB\AdresseBundle\Entity\Ville'
));
}
/**
* @return string
*/
public function getName() {
return 'mdb_adressebundle_ville';
}
}
Run Code Online (Sandbox Code Playgroud)
但是我的形式永远不会被证实,因为它们在这个选择领域没有价值.但是我无法在内部添加值因为我事先不知道用户将作为值输入什么.
所以我的问题是如何禁用Symfony对此字段的验证.或者允许它接受所有价值.
谢谢
编辑
在这里,我尝试了一种新方法.我使用事件监听器来修改我的字段,其值大于用户提交的值.
public function buildForm(FormBuilderInterface $builder, array $options) {
$builder
->add('nomComplet', 'choice');
$builder->get('nomComplet')->addEventListener( …Run Code Online (Sandbox Code Playgroud) 我想知道是否可以在学说查询生成器中检查一个数组是否包含另一个数组的任何元素。
就我而言,我想获取传入参数的数组中至少具有该类别之一的所有产品(项目)。
Item 与 Category 的关系:
/**
* @ORM\ManyToMany(targetEntity="Category")
* @ORM\JoinTable(name="items_categories",
* joinColumns={@ORM\JoinColumn(name="item_id", referencedColumnName="id", nullable=false)},
* inverseJoinColumns={@ORM\JoinColumn(name="category_id", referencedColumnName="id", nullable=false)}
* )
*/
private $categories;
Run Code Online (Sandbox Code Playgroud)
我从 Item 存储库中的第一次尝试(如果我只有一个值要检查,我知道这项工作):
public function getListItemsFromCatList($listCat) {
$qb = $this->createQueryBuilder('i');
$qb->select('i')
->where($qb->expr()->like('i.categories', ':listCat'))
->setParameter('listCat', '%"' . $listCat . '"%');
return $qb->getQuery()->getResult();
}
Run Code Online (Sandbox Code Playgroud)
$listCat 是一个 Category Entity 数组:
array (size=5)
0 =>
object(ItemBundle\Entity\Category)[518]
private 'id' => int 22
private 'children' =>
object(Doctrine\ORM\PersistentCollection)[520]
private 'snapshot' =>
array (size=2)
...
private 'owner' =>
&object(ItemBundle\Entity\Category)[518]
private 'association' =>
array (size=15) …Run Code Online (Sandbox Code Playgroud) php ×2
arrays ×1
choicefield ×1
doctrine ×1
doctrine-orm ×1
formbuilder ×1
forms ×1
symfony ×1
symfony-3.1 ×1