很抱歉打扰你,但我想获得一个表单验证的最大值,例如它可以是一个数字字段,但必须在数据库中检索类型范围 MaxValue 的验证我自己解释,例如我希望保留一个运输剩余 4 个位置的最大值默认为 4,但如果此车辆还剩下 3 个位置,则验证必须传递到 3

我试图通过事件处理实体类型,但它没有改变我的问题,它在下拉列表中返回了每辆车的所有位置数。

目标是使一个简单的表单成为一个预订按钮,它只是一种选择位置数量的方法,同时又不能超过数据库的值。

例如 URL 是 /transport/6/book

我们必须找到一种方法来传递 id 号 6 的值,例如验证将在 1 和 3 之间,或者创建一个放置 1 2 3 的列表

如果运输 7 到 1 个可用地点,则只能是 1 个。

对不起,如果我说错了,但我已经研究了一个多星期,但我无法让它工作,所以我已经转移到一个旧的提交来保持应用程序的工作。 我是这方面的初学者,所以我不知道表单的高级功能,但我非常擅长 twig 存储库等。只是这部分被阻塞,在此先感谢您的帮助。

public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('nbPlaces', EntityType::class, [
                'class' => Transport::class,
                'label' => 'Nombre de places',
                'attr' => [
                    'placeholder' => "Nombre de places",
                ],
                'query_builder' => function (TransportRepository $transportRepository) use ($id_service) {
                    return $transportRepository->findOneByIdPlace($id_service);
                },
                'choice_label' => 'nbPlaces'
            ]);
    }

public function configureOptions(OptionsResolver $resolver)
{
    $resolver->setDefaults([
        'data_class' => Reservation::class,
        'id_service' => null
    ]);
}

和控制器

$booking = new Reservation();
        $form = $this->createForm(ReservationType::class, $booking, ['id_service' => $service]);

并且 $id_service 是使用中的未定义变量

#1楼 票数:0 已采纳

这是因为$id_service从未定义过。 您应该从选项中获取它。 看看这里: https : //symfony.com/doc/current/forms.html#other-common-form-features

所以你的代码应该是这样的。

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $id_service = $options['id_service'];
    $builder
        ->add('nbPlaces', EntityType::class, [
            'class' => Transport::class,
            'label' => 'Nombre de places',
            'attr' => [
                'placeholder' => "Nombre de places",
            ],
            'query_builder' => function (TransportRepository $transportRepository) use ($id_service) {
                return $transportRepository->findOneByIdPlace($id_service);
            },
            'choice_label' => 'nbPlaces'
        ]);
}

  ask by Amelya translate from so

未解决问题?本站智能推荐:

1回复

如何禁用 Symfony 形式的自动设置值?

我在控制器中创建了一个表单: 我的树枝页面中有此代码: 现在,当我为输入写入一个值(例如“123456”)并且当我提交表单并且它无效时,页面会刷新并且我的输入值显示“123456”,而当我再次刷新页面时,值不会改变。
1回复

symfony4注入参数的形式

我有一个业务实体和一个BusinessObject实体,当我创建一个新的BusinessObject时,我想将BusinessObject链接到当前的业务。 例如,如果我的路线是business/{id}/object/new ,那么我希望具有与Business相关的对象(由于id)。
1回复

范围日期时间(形式)的Symfony问题

我不明白我的问题。 如果你能给我一个想法。 我有一个有效的 dateTime 字段,但我的字段年份有一个奇怪的范围(2015-2025)。 我想要更大的范围(例如:1960-2040)。
2回复

嵌入 Symfony 4.4 形式集合的问题

无效的属性路径异常 如果我提交表格,而没有填写数据。 我收到这个错误。 无法解析属性路径“children[upcomingTours].children[[0]].children[address].children[street].data”。 位置 36 处出现意外标记“]”。 一些问题
1回复

如何创建带有symfony形式的微调框?

我想以symfony形式使用微调器: 看来symfony没有这样的表单字段类型? 似乎他们的自定义表单字段类型不适用于此工作? https://symfony.com/doc/current/form/create_custom_field_type.html
2回复

Symfony 4单个形式的多个实体

我一直在努力让我的多实体形式发挥作用,但它确实让我失望,而且我发现的任何一个例子都没有。 我检查了Collection表单类型文档和表单集合 ,以及Entity表单类型 。 我有一个User实体, UserRole实体和一个Role实体。 UserRole包含userID和role
1回复

Symfony 4 Collections形式错误:无法猜测

我根据文档http://symfony.com/doc/current/form/form_collections.html采取了行动,我需要添加一个公共页面来编辑一个实体的所有记录,并且还建议使用“表单收集” 。 出现了诸如“ add use ORM ”之类的ERROR ,现在遇到了ERRO
1回复

Symfony 4 上传多个文件并更改最大大小

向社区问好, 我正在构建一个上传图像的投资组合页面,我创建了一个类投资组合,我在其中保存了类图像的集合。 和我的表格类型: 如果没有约束部分,我可以上传图像,但我的 maxSize 为 2M,如果 contrainst 部分处于活动状态,我会收到错误消息“此值应为字符串类型”(我想我不喜欢