【问题标题】:Symfony dynamic model form templateSymfony 动态模型表单模板
【发布时间】:2011-09-18 16:31:21
【问题描述】:

我正在开发基于 symfony 的 Web 应用程序。我有很多模型(笔记本电脑、上网本、Ipad、平板电脑......所有这些模型继承产品模型)。基于这些模型,我也有表单(LaptopForm、NetbookForm......等等) . 在我的动作类中,我得到模型名称并将其分配给模板:

 $modelForm = $this->modelName.'Form';

 $this->form = new $modelForm();

然后在我的模板中我这样做<?php echo $form ?> ..它打印html表中的所有字段和标签没有问题。

但我的问题是我想将模板分成两部分。一般和特殊字段集。在一般字段集中,我想显示产品模型字段(名称,价格...)。但是特殊字段集根据产品类型而变化。我该如何处理这个特殊字段集?有人可以提供线索或来源吗?

提前致谢!

【问题讨论】:

    标签: forms dynamic symfony1 field


    【解决方案1】:

    您可以在专门的表单类中手动管理它(而不是更改基类)。
    也许,使用 sfWidgetFormSchema :
    http://www.symfony-project.org/forms/1_4/en/A-Widgets#chapter_a_sfwidgetformschema 您必须将小部件命名为“通用”和“特殊”,以便在表单模板中进行标准重用,如下所示:

    <?php echo $form['general'] ?>
    <?php echo $form['special'] ?>
    

    【讨论】:

    • 感谢您的回答。它非常有帮助。我还有一个问题。当我从命令行生成这些模型时,基类字段会自动设置为“$this->setWidgets(...)”。我可以配置 symfony 以便将自动创建的模型字段设置为 "$general=sfWidgetFormSchema(array('name'=> new fWidgetFormInputText(),...)"..谢谢
    • 我担心这是不可能的。但是,也许您可​​以尝试使用 Productform 类中的继承系统,它必须以桌面等其他形式继承......
    猜你喜欢
    • 1970-01-01
    • 2013-05-05
    • 2012-03-03
    • 1970-01-01
    • 2017-01-30
    • 2021-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多