OctoberCMS BackendForm-Widget «Repeater» хранит мои данные в виде массива в базе данных, которая выглядит так:
{
"topic":"title",
"topic_description":"description",
}
{
"topic":"title",
"topic_description":"description",
}
Мне нужно добавить уникальный идентификатор в каждый массив, чтобы json выглядел следующим образом:
{
"topic_id":"1",
"topic":"title",
"topic_description":"description",
}
{
"topic_id":"2",
"topic":"title",
"topic_description":"description",
}
Я добавил эту функцию formBeforeSave в свой контроллер:
public function formBeforeSave($model)
{
$model->topics = array_map(array($model, 'topics'), function ($topic) {
$topic['id'] = uniqid();
});
}
Но при попытке сохранить форму OctoberCMS выдает эту ошибку:
“array_map(): Argument #2 should be an array”
Вместо этого добавьте это в контроллер:
public function formBeforeSave($model)
{
$model->topics = array_map($model->topics, function ($topic) {
$topic['id'] = uniqid();
});
}
Выдает ошибку:
array_map() expects parameter 1 to be a valid callback, array must have exactly two members
Кто-нибудь испытал это и нашел решение, которым он / она может поделиться, пожалуйста?