加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – Symfony 2表格与选择列表

发布时间:2020-12-13 13:14:59 所属栏目:PHP教程 来源:网络整理
导读:如何使用Symfony 2中的数据库表创建具有值的选择列表? 我有2个实体:学生和课堂与ManyToOne关系,我需要创建一个表单与以下字段:姓名,姓氏,年龄,教室(从可用类中选择列表). 在我的学生形式我有 $builder -add('name') -add('surname') -add('age') -add('cl
如何使用Symfony 2中的数据库表创建具有值的选择列表?

我有2个实体:学生和课堂与ManyToOne关系,我需要创建一个表单与以下字段:姓名,姓氏,年龄,教室(从可用类中选择列表).

在我的学生形式我有

$builder
        ->add('name')
        ->add('surname')
        ->add('age')
        ->add('classroom',new ClassroomType())
    ;

在我的课堂表格我有这个:

$classrooms =$this->getDoctrine()->getRepository('UdoCatalogBundle:Classroom')->findAll();
    $builder
        ->add('clasa','choice',array('choices' => array($classrooms->getId() => $classrooms->getName())));

我得到以下错误:

Fatal error: Call to undefined method UdoCatalogBundleFormClassroomType::getDoctrine() in /var/www/html/pos/src/Udo/CatalogBundle/Form/ClassroomType.php on line 13

亲切的问候,
谢恩丹

不知道你是否找到答案,但我只是为了自己的项目而做一些挖掘.

表单类没有设置为使用Doctrine就像控制器那样,所以你不能以相同的方式引用Entity.你想要做的是使用entity Field Type这是一个特殊的选择字段类型,允许你从Doctrine实体加载选项,就像你想要做的那样.

好久不见了.而不是做你正在做的创建选择字段,请执行以下操作:

->add('category','entity',array(
    'class' => 'VendorWhateverBundle:Category','query_builder' => function($repository) { return $repository->createQueryBuilder('p')->orderBy('p.id','ASC'); },'property' => 'name',))

我不知道你是否可以将query_builder函数放入一个存储库,或者什么,当我走的时候,我会很疯狂地摆动.到目前为止,我链接到上面的文档很清楚如何做.我猜下一步是在Doctrine’s QueryBuilder上阅读.

当你在那里,我想你想放下你嵌入“课堂”表格的位置,

->add('classroom',new ClassroomType())

你可能不希望人们创建自己的教室.除非你这样做,那么是的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读