我必须通过API中的get参数发送一个过滤器数组,如下所示:
/myList?filters[nickname]=test&filters[status]=foo
Run Code Online (Sandbox Code Playgroud)
现在如果我像这样直接发送一个对象:
Restangular.one('myList').get({filters: {
nickname: 'test',
status: 'foo'
}});
Run Code Online (Sandbox Code Playgroud)
真正发送的查询是
?filters={"nickname":"test","status":"foo"}
Run Code Online (Sandbox Code Playgroud)
如何发送真正的数组?我应该考虑替代方案吗?
我不得不将我的一个项目从 symfony 2.8 升级到 symfony 3.4,我注意到验证过程发生了巨大的变化。
为简化起见,假设我有一个 User 实体,其中包含许多 Addresses 实体。当我创建/更新我的用户时,我希望能够添加/删除/更新任意数量的地址。所以在 symfony 2.8 我有这种情况
用户
我使用注释验证器
src/AppBundle/Entity/User.php
//...
class User
{
//...
/**
* @Assert\Count(min=1, max=10)
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Address", mappedBy="user", cascade={"persist", "remove"})
*/
protected $addresses;
//...
}
Run Code Online (Sandbox Code Playgroud)
用户表单
src/AppBundle/Form/UserForm.php
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
// ...
->add('addresses', CollectionType::class, [
'type' => AddressType::class,
'cascade_validation' => true,
'allow_add' => true,
'allow_delete' => true,
'by_reference' => false,
])
;
}
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults([
'data_class' => User::class,
'cascade_validation' => …Run Code Online (Sandbox Code Playgroud)