【发布时间】:2019-06-08 00:12:11
【问题描述】:
OctoberCMS BackendForm-Widget "Repeater" 将我的数据作为数组存储在数据库中,如下所示:
{
"topic":"title",
"topic_description":"description",
}
{
"topic":"title",
"topic_description":"description",
}
我需要为每个数组添加一个唯一的 ID,以便 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
有没有人遇到过这种情况并找到了他/她可以分享的解决方案?
【问题讨论】:
-
每个主题都有一个(唯一的)键。所以你可以把这个键复制为附加值
-
参数 1 应该是您作为第二个参数提供的回调。
标签: php mysql arrays laravel octobercms