我正在尝试创建一个选项页面,我想知道如何在该页面上保存设置。 我知道如何用表单创建普通页面,通常该表单中的每个字段都是数据库中的一列。
但是对于选项页面,每个设置(例如布局,颜色,字体等)应按行排列或作为数组存储在数据库中。
有人做过吗?
编辑以澄清
我想拥有一个数据库表,如下所示:
id | setting_name | setting_value
---|--------------|--------------
1 | page_bg | #FFFFFF
2 | page_width | full
表格应类似于:
<form>
<label for="page_bg">Page background color</label>
<input id="page_bg" name="page_bg" type="text" />
<label for="page_width">Page Layout</label>
<select id="page_width" name="page_width">
<option value>Select layout</option>
<option value="full">Full</option>
<option value="medium">Medium</option>
</select>
</form>
我有一个选项页,所有设置已经显示为表单(类似于wordpress中的主题)。
答案 0 :(得分:0)
这似乎很简单,是多个实体的表单。使用类似
的命名方案echo $this->Form->hidden('settings.0.setting_name', ['value' => 'layout']);
echo $this->Form->input('settings.0.setting_value');
echo $this->Form->hidden('settings.1.setting_name', ['value' => 'color']);
echo $this->Form->input('settings.1.setting_value');
如果您要编辑现有设置而不是创建新设置,则将setting_name
字段替换为id
。
在您的控制器中,您将执行patchEntities()
和saveMany()
。
您也可能会从this plugin那里获得灵感或将其用于您的项目中。