以键/值对数组的形式获取视图结果

时间:2019-05-27 11:12:42

标签: drupal-8 drupal-views

我创建了一个显示字段列表的视图。它列出了产品(来自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来收集值,但是必须有一些更好的方法来简单地收集视图值?

0 个答案:

没有答案