множество флажков хранятся вместе в одном строковом поле

Что может быть самым кратким, ИЛИ наиболее встроенным способом PHP Symfony 2.6 для хранения потенциально изменяющегося набора предпочтений в виде одной строки на сервере?

Я рассматриваю возможность использования json_encode () а также json_decode ()

от

use Symfony\Component\HttpFoundation\JsonResponse;

(в пользу моего более раннего использования лопаются () а также взорваться () или похожие способы конвертации массива <==> Строка).

На заднем конце, в SQL и поле моей сущности $ префы, в случае использования JSON, который, вероятно, является разумным выбором формата, я предпочитаю хранить:

$prefs = "{"Notif_Alert":"1","Notif_Email":"1","Notif_SMS":"0"}"

// не уверен на 100%, как TRUE / FALSE будет на самом деле храниться выше. Может быть, пустая строка », может быть, ноль, может быть пустым или отсутствует. Любое хорошо, если это соответствует.

В то время как в PHP, где я обрабатываю большую часть серверной логики, мне нужен доступ на чтение / запись к этой собственной структуре массива:

 $prefsA = [
"Notif_Alert" => TRUE,
"Notif_Email" => TRUE,
"Notif_SMS" => FALSE,
];

(Я буду реализовывать так, чтобы при чтении отсутствующего предпочтения просто по умолчанию использовалось значение ЛОЖЬ. Опять же, список предпочтений будет отличаться для каждого пользователя. Ради этого вопроса, допустим, все значения могут быть только логическими, хотя на практике это не всегда будь то случай, и я бы использовал FormBuilderInterface, чтобы специально обрабатывать мои известные int и строковые вводы HTML).

Тем не менее, все, что я исследовал в документах, например.

кажется, указывает на поддержку главным образом для сохранения каждого такого параметра как его собственного поля сущности, ИЛИ как Коллекции (и, следовательно, вероятно, как отображение OneToMany, которое заставляет ORM создать объединенную таблицу, если я хочу постоянство и т. д.). Ни то, ни другое мне не подходит.

В частности, как я могу положиться на

Symfony \ Component \ Form \ FormBuilder сделать большую часть работы (возможно, в EntityType.php):

$builder->add('prefs', ...? , [ ...? ] )

так что мне не нужно слишком много копаться с кодированием и декодированием в контроллере (т.е. EntityController.php), и только так мало, как необходимо в геттерах и установщиках в Entity.php Модель?

мой editPrefs.html.twig Вид на данный момент имеет:

{{ form(form) }}

Позже я могу разбить его на виджеты, ради интерфейсных кодеров.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]