Как создать страницу настроек в cakephp 3 - PullRequest
0 голосов
/ 26 марта 2019

Я пытаюсь создать страницу параметров, и мне интересно, как сохранить настройки на этой странице. Я знаю, как создать обычную страницу с формой, и обычно каждое поле в этой форме является столбцом в базе данных.

Но для страницы параметров каждый параметр (например, макет, цвета, шрифты и т. Д.) Должен быть либо для каждой строки, либо сохраняться в виде массива в базе данных.

Кто-нибудь когда-нибудь делал это?

РЕДАКТИРОВАТЬ, чтобы уточнить

Я хотел бы иметь таблицу базы данных следующим образом:

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 голосов
/ 27 марта 2019

Это похоже на очень простую форму для нескольких сущностей. Используйте схему именования, например

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().

Вы также можете посмотреть этот плагин для вдохновения или для использования в вашем проекте.

...