如何在自定义模块中执行Drupal-view并打印输出(如html-markup)?

时间:2018-01-14 23:15:46

标签: drupal drupal-views drupal-8

我想在自定义模块中从简单视图打印输出。但是不起作用。我从论坛和stackoverflow尝试了很多选项。所有这些都打印"阵列"而不是html-markup。

我的控制器:

class DefaultController extends ControllerBase {


    public function myfunc1() {

        $view = Views::getView('myfirstview');

        $view->setDisplay('page_1');
        $view->preExecute();
        $view->execute();

        // $myresults = $view->preview();  = array
        // $myresults = $view->render();  = array
        $myresults = $view->result; // = array


        return array(
            '#title' => 'Hello World!',
            '#markup' => $myresults,
        );
    }
}

如何以编程方式打印视图的结果/输出?

我不希望没有"嵌入视图" ,因为我想稍后设置一些暴露的过滤器。

1 个答案:

答案 0 :(得分:-1)

获取视图

$corresponding_view = Views::getView('myfirstview');

设置曝光过滤器

$arguments = your arguments (exposed filter value);
$corresponding_view->setArguments($arguments);

嵌入你的观点

return [
  '#type' => 'view',
  '#name' => 'myfirstview',
  '#view' => $corresponding_view,
  '#display_id' => 'page_1',
  '#embed' => TRUE,
];