如何在cakephp 3中创建选项页面

时间:2019-03-26 20:21:36

标签: cakephp cakephp-3.0

我正在尝试创建一个选项页面,我想知道如何在该页面上保存设置。 我知道如何用表单创建普通页面,通常该表单中的每个字段都是数据库中的一列。

但是对于选项页面,每个设置(例如布局,颜色,字体等)应按行排列或作为数组存储在数据库中。

有人做过吗?

编辑以澄清

我想拥有一个数据库表,如下所示:

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中的主题)。

1 个答案:

答案 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那里获得灵感或将其用于您的项目中。