【发布时间】:2021-06-01 16:07:16
【问题描述】:
我有一个疑问,我已经创建了一个带有 View 的 REST,并且我的格式类似于 JSON,但是输出是这样的:
[{"item1":"123","item2":"123","item3":"123","item4":"","item5":"123","item5":"123"}, {"item1":"345","item2":"345","item3":"345","item4":"","item5":"345","item5":"345"}]
我需要这样的东西:
{"elements":
[
{"element":
{"item1":"123","item2":"123","item3":"123","item4":"123","item5":"123"}
},
{"element": {"item1":"345","item2":"345","item3":"345","item4":"345","item5":"345"}
}
]
}
如何添加根名称和子名称? 我可以对视图进行一些配置吗?
我已经尝试过像这样使用 views_post_execute 钩子:
function mymodule_views_post_execute(ViewExecutable $view) {
if (isset($view) && ($view->storage->id() == 'myrestjson')) {
$result = ['elements' => array_map(
function ($subarray) {
return ['element' => $subarray];
},$view->result
)];
$view->result = $result;
}
}
但我收到此错误:
TypeError: Argument 1 passed to Drupal\views\Plugin\views\field\FieldPluginBase::advancedRender() must be an instance of Drupal\views\ResultRow,array given, called in mysite\core\modules\rest\src\Plugin\views\row\DataFieldRow.php on line 147 in Drupal\views\Plugin\views\field\FieldPluginBase->advancedRender() (line 1142 of core\modules\views\src\Plugin\views\field\FieldPluginBase.php).
你能帮帮我吗? 问候 马里奥
【问题讨论】:
标签: php view drupal hook drupal-views