相关疑难解决方法(0)

表单:避免将null设置为非提交的字段

我有一个简单的模型(源代码简化):

class Collection
{
    public $page;
    public $limit;
}
Run Code Online (Sandbox Code Playgroud)

和表单类型:

class CollectionType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder->add('page', 'integer');
        $builder->add('limit', 'integer');
    }

    public function setDefaultOptions(OptionsResolverInterface $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => 'FSC\Common\Rest\Form\Model\Collection',
        ));
    }
}
Run Code Online (Sandbox Code Playgroud)

我的控制器:

public function getUsersAction(Request $request)
{
    $collection = new Collection();
    $collection->page = 1;
    $collection->limit = 10;

    $form = $this->createForm(new CollectionType(), $collection)
    $form->bind($request);

    print_r($collection);exit;
}
Run Code Online (Sandbox Code Playgroud)

当我POST /users/?form[page]=2&form[limit]=20,回应是我所期望的:

Collection Object
(
    [page:public] => 2
    [limit:public] => 20
)
Run Code Online (Sandbox Code Playgroud)

现在,当我POST /users/?form[page]=3 …

symfony-2.1

5
推荐指数
1
解决办法
3315
查看次数

Symfony2 REST API - 部分更新

我正在Symfony2中使用FOSRestBundle构建REST API.我正在使用表单来创建和更新Doctrine2实体.如果我发送所有表单字段,一切正常.例:

{"first_name":"Pi","last_name":"Wi"}
Run Code Online (Sandbox Code Playgroud)

该人插入正常,但现在我只想更新姓氏.

{"last_name":"Wi"}
Run Code Online (Sandbox Code Playgroud)

问题是更新后第一个名称为空,因为表单使用"null"值更新实体(因为没有给出).是否可以只更新姓氏并忽略名字?

php rest symfony fosrestbundle

2
推荐指数
1
解决办法
3062
查看次数

标签 统计

fosrestbundle ×1

php ×1

rest ×1

symfony ×1

symfony-2.1 ×1