我创建了一个显示字段列表的视图。它列出了产品(来自Drupal Commerce),所以我只获得产品标题和产品链接(产品页面的路径)。
我需要一种从代码中使用此视图的方法,以收集成对的数组,即一个数组将是一些子数组或对象,例如:
{
'title' => 'Product title',
'path' => 'product/1'
}
就像我在视图编辑页面上看到结果一样。到目前为止,我尝试过的是:
$view = views_get_view_result('get_all_products');
print_r($view);
通过这种方式,我确实获得了一些结果,但它们是产品实体,而不是我在视图中选择的字段。
也尝试过:
function getView($viewId, $displayId, array $arguments)
{
$result = false;
$view = Views::getView($viewId);
if (is_object($view)) {
$view->setDisplay($displayId);
$view->setArguments($arguments);
$view->execute();
// Render the view
$result = \Drupal::service('renderer')->render($view->render());
}
return $result;
}
这将返回我在视图内选择的值,但不是作为键/值数组,而是作为呈现的html。我可以解析html来收集值,但是必须有一些更好的方法来简单地收集视图值?