当前位置: 首页 > 知识库问答 >
问题:

Symfony 2-复选框,默认值为除非来自数据库的数据

郭志泽
2023-03-14
    public function buildForm(FormBuilderInterface $builder, array $options)
{

    $builder
        ->add('isFieldFirstname', 'checkbox', array(
        'label'    => 'Show First Name',
        'required' => false,
            "data" => true,
            )
                )

只是回顾一下

  1. 数据库-未找到记录-将默认复选框显示为选中
  2. 如果记录找到从数据库exisfieldfirstname=false使用值,则未选中复选框

共有1个答案

韩阳云
2023-03-14

您可以实现buildform方法来描述窗体的结构,而不是值。这些值来自普通数组或数据对象。Symfony使用DataAccess组件映射它们。

  • 在复选框中删除“数据”选项
  • 调用复选框“fieldfirstname”(没有“is”)

//MyFormType.php

public function buildForm(FormBuilderInterface $builder, array $options) {
  $builder
    ->add(
      'fieldFirstname',
      'checkbox',
      [
        'label'    => 'Show First Name',
        'required' => false
      ]
    );
}
    null
class MyFormData {
  private $fieldFirstname;

  public function isFieldFirstname() {
    return $this->fieldFirstname;
  }

  public function setFieldFirstname($fieldFirstname) {
    $this->fieldFirstname = $fieldFirstname;
  }
}
    null
// ...
public function myAction() {
  $data = new MyFormData();
  $data->setFieldFirstname(
    ! $myService->isDataInDatabase()
  );

  $form = $this->createForm(
    new MyFormType(),
    $data
  );

  // ... 
}
 类似资料:
  • 我为此挣扎了很长时间。我正在更改代码,需要将默认值设置为特立尼达岛的selectOneRadio元素。我有来自数据库的对象(例如称为result)。此对象具有属性decision。在select元素中,value参数的使用方式是。 现在我需要结果。decision为空,将值设置为True。如果值为False,则将值设置为False。如果值为True,则将值设置为True。我在模板中尝试了类似的方法

  • 我正在使用DBEAVER3.8.0,并试图建立到本地PostgreSQL数据库的一般连接。 若要查看所有数据库,请选中“显示非默认数据库”复选框。当我试图访问我的一个数据库的架构时,我得到了错误

  • 问题内容: 我有一个系统,人们可以填写他们的信息,以后可以回去编辑某些部分,基本上是输入个人信息,并检查他们是否想知道其他信息,这些额外信息中有4个是复选框。用户将最多选择4个字段,并且数据库将4个字段设置为no,如果他们选择一个,则字段将更改为yes。我希望他们能够返回并取消选择或重新选择这4个复选框中的任何一个,所以我希望如果值是yes,则要选中的复选框,如果值不是,则不选中。 字段是tag_

  • 问题内容: 我在模型上有一个字段,其内容是: 然后,我将模型更改为: 当我运行以检查迁移时,发现以下更改: 我不理解为什么Django在表中应用a ,因为我正在 创建 默认值。如果这是正确的,Django如何实现默认值? 有关我的工具的信息: PostgreSQL 9.5; Django 1.11b1; 问题答案: 从ln开始的对django / db / backends / base / sc

  • 我需要一些帮助,我不知道如何解决这个问题。 当我设置适配器时,我需要默认选择几个复选框,但我不能这样做。为什么?我认为问题是CheckableRelativeLayout。我使用RelativeLayout的这个变体,因为我需要单击行并选择复选框。 当我使用RelativeLayout的这个变体时,列表中的所有复选框都未选中。如果您在最后看到我的日志,当选中复选框时会触发事件“onCheckedC

  • JOOQ似乎完全忽略了数据库列的默认值。既不会更新ActiveRecord对象,也不会在插入时跳过此列。相反,它尝试将其设置为NULL,这在非NULL列上失败。 例: 我所期望的行为是,要么new记录()用korrekt值初始化所有默认变量(尽管我知道如果结果是自定义函数的结果,这可能很困难:-))。或者INSERT INTO不插入所有带有默认值的未修改列,然后INSERT INTO后面跟着一个S