【发布时间】:2014-02-26 18:52:11
【问题描述】:
我有一个应用程序允许人们创建包含小部件的报告。这些小部件使用自己的表单类型设置选项。我想做的是允许用户将报告保存为模板。我遇到的问题是小部件中的某些选项特定于特定用户/客户端,因此在从该模板创建报告时需要定义这些选项。
我的问题是,当从模板创建报告时,我如何允许用户定义一些选项并让其他选项保持定义。
后续问题,我将如何允许用户定义“全局”变量?例如,小部件 1、2 和 3 都是相同的表单类型,并且它们的选项都相同,即 start_time 字段。然后,当创建报告时,它会查找所有“全局”选项,并允许用户为这些选项定义一个值,然后在所有使用它的地方填充该值。
EX:假设我有 2 种小部件类型,
class WidgetTypeOne extends AbstractType
...
$builder->add('start_date', 'date')
->add('end_date', 'date');
还有一个
class WidgetTypeTwo extends AbstractType
...
$builder->add('some_option','text);
现在假设用户有一个包含 4 个 WidgetTypeOne 和 2 个 WidgetTypeTwo 的报告。我想让用户看到他们的所有选项,并说对于 4 个 WidgetTypeOne 中的 3 个,“start_date”将是相同的。这样当使用此模板创建报告时,系统会提示用户输入“start_date”,这将用于填充这 3 个小部件的数据。
一旦能够添加赏金,导致解决方案的答案将获得 300 代表奖励
更新
是否可以创建一种新的字段类型,其作用类似于日期字段类型与多个选择框的工作方式,只有一个字段是原始字段类型,另一个是可用“全局变量”的选择?
会导致类似:
<select name="form_name[field][use_options]">
<option value="use_static">Use Static Value</option>
<option value="define_on_create">Define When Created</option>
<option value="add_global">Add New Global</option>
...The rest would be dynamically added by javascript
</select>
<input type="text" name="form_name[field][static_value]" />
这样我可以解析表单并知道在哪里使用全局值或静态值。
【问题讨论】: