如何以编程方式创建Drupal 8视图

时间:2017-05-04 09:39:23

标签: drupal drupal-views

我正在尝试以编程方式在Drupal 8中创建一个视图。类似于Drupal 7中的crud日志模块。我无法在Internet上找到任何引用。

2 个答案:

答案 0 :(得分:1)

尽管它不是以编程方式从头开始创建的,但这是一个简单的方法:

  • 使用后台创建视图
  • 使用配置管理器模块导出该单个视图
  • 复制该yml文件并将其放在基本的自定义模块/ config / install文件夹中
  • 删除包含uuid的第一行
  • (可选)根据需要手动修改文件,并且了解其工作原理
  • 激活您的自定义模块将导入视图

答案 1 :(得分:0)

您可以通过ConfigEntityStorage创建新的视图。

在UI中创建视图。将View的YAML配置文件导出到模块中的路径,并删除UUID。

// view config is in `my_module/views.view.my_view.yml`
// (uuid removed!)

$dir = drupal_get_path('module', 'my_module');
$fileStorage = new FileStorage($dir);
$config = $fileStorage->read('views.view.my_view');

/** @var \Drupal\Core\Config\Entity\ConfigEntityStorage $storage */
$storage = \Drupal::entityTypeManager()
  ->getStorage('view');

/** @var \Drupal\views\Entity\View $view */
$view = $storage->create($config);

$view->save();