首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >根据项目状态在symfony表单中处理下拉项目的最佳方式是什么?

根据项目状态在symfony表单中处理下拉项目的最佳方式是什么?
EN

Stack Overflow用户
提问于 2017-04-13 05:35:33
回答 1查看 63关注 0票数 0

让我们考虑如下场景:

实体Car有多对多的CarType,这是不同类型的列表,每种类型可以是活动的或不活动的。

汽车表单:

代码语言:javascript
运行
复制
$builder->add('type', 'entity', array(
            'label'         => 'Car Type',
            'class'         => 'SomeBundle:CarType',
            'query_builder' => function (EntityRepository $er) {
                $qb = $er->createQueryBuilder('type')
                        ->where('type.status = :status')
                        ->setParameter('status', 'active')
                ;
                return $qb;
            }
        ));

在创建阶段,用户使用活动Type创建Car。假设我有一个管理页面将Type标记为活动/非活动。

处理与非活动Type相关的Car编辑阶段的最佳方法是什么?换句话说,如果某个Car与在某个点处于活动状态但不再处于活动状态的任何Type有关系,则该选项将不会显示在下拉列表中。

处理这样的用例最好的方法是什么?在不同的时间范围内,dropdwon项目可以有不同的状态,但查询只返回活动的项目?

一种方法是警告用户Car正在使用一些非活动的Type,但还有其他更好的方法吗?

EN

回答 1

Stack Overflow用户

发布于 2017-04-13 17:09:53

你可以在管理员级别处理这个问题(例如,如果carType仍在使用,则不能使其处于非活动状态)

或者你用用户级别来处理:

您只建议选择活动的汽车+非活动的当前用户选择。

这样,用户只能选择更改为活动类型的汽车或保留其过时的类型

代码语言:javascript
运行
复制
$qb = $er->createQueryBuilder('type')
    ->where('type.status = :status')
    ->orWhere('id = :currentTypeId')
    ->setParameter('currentTypeId', $someId)
    ->setParameter('status', 'active')

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43380034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档