Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Делаю сохранение данных. Некоторые данные хранятся как varchar и сохраняются без проблем, а некоторые должны конвертироваться в json - в этом и проблема.
Сохраняется так:
{"news": "{\"add\":null,\"edit\":null,\"delete\":null,\"editMy\":null,\"deleteMy\":null,\"reason\":\"on\",\"premoderator\":\"on\"}", "comments": "{\"add\":\"on\",\"edit\":null,\"delete\":null,\"editMy\":null,\"deleteMy\":null,\"reason\":\"on\",\"premoderator\":null}"}
А нужно так:
{"news": {"add": false, "edit": false, "show": true, "delete": false, "editMy": false, "reason": true, "deleteMy": false, "premoderator": true}, "comments": {"add": true, "edit": false, "show": true, "delete": false, "editMy": false, "reason": true, "deleteMy": false, "premoderator": false}}
Сохраняю многомерный массив:
'site_role' => json_encode([
'news' => json_encode([
'add' => $request->newsAdd,
'edit' => $request->newsEdit,
'delete' => $request->newsDelete,
'editMy' => $request->newsEditMy,
'deleteMy' => $request->newsDeleteMy,
'reason' => $request->newsReason,
'premoderator' => $request->newsPremoderator
]),
'comments' => json_encode([
'add' => $request->commentsAdd,
'edit' => $request->commentsEdit,
'delete' => $request->commentsDelete,
'editMy' => $request->commentsEditMy,
'deleteMy' => $request->commentsDeleteMy,
'reason' => $request->commentsReason,
'premoderator' => $request->commentsPremoderator
])
])
Как это правильно реализовать, что бы сохранение и вывод был корректный.
PS: вывожу следующим образом:
В модели делаю так:
protected $casts = [
'site_role' => 'array',
'moder_role' => 'array',
'admin_role' => 'array',
];
В самом view:
$role->site_role['news']['editMy']
Не в сети
Решено! Ошибка была в том, что я в массиве делал ещё json массив.
Т.е. так правильно:
'site_role' => json_encode([
'news' => [
'show' => $request->newsShow,
'add' => $request->newsAdd,
'edit' => $request->newsEdit,
'delete' => $request->newsDelete,
'editMy' => $request->newsEditMy,
'deleteMy' => $request->newsDeleteMy,
'reason' => $request->newsReason,
'premoderator' => $request->newsPremoderator
],
'comments' => [
'show' => $request->commentsShow,
'add' => $request->commentsAdd,
'edit' => $request->commentsEdit,
'delete' => $request->commentsDelete,
'editMy' => $request->commentsEditMy,
'deleteMy' => $request->commentsDeleteMy,
'reason' => $request->commentsReason,
'premoderator' => $request->commentsPremoderator
]
]),
Не в сети
Страницы 1