2017-05-04 9 views
1

Drupal 8でプログラムでビューを作成しようとしています.Drupal 7のcrud logモジュールと同様のものです。インターネット上の参照も見つかりませんでした。プログラムでDrupal 8ビューを作成する方法

+0

実際にビュー(Drupalの用語で表示)を作成しようとしていますか、またはカスタムデータベースクエリを作成したいですか? – MilanG

+0

私はプログラムで「ビュー」を作成しようとしていました。あなたの返事をありがとうございました...私は昨日それを作成するのに成功しました – Rekha

答えて

0

私はfollowing-- 1.フォルダを作成しなかった----プログラムでビューを作成することに成功した - C:\ xamppの\ htdocsに\ Drupalのインスタンス\モジュール 2. YML情報ファイルを作成します。 --first_view.infoと----そこに 名以下のコードを追加します:最初のビューは タイプ:モジュール 説明:私の最初のDrupal 8ビュー パッケージ:カスタム コア:8.xの 3.インストールファイルを作成します。 --- first_view.install そして次のコードを追加してください。

<?php 

/** 
* @file 
* Install, schema, and uninstall functions for the First View module. 
*/ 

use Drupal\field\Entity\FieldStorageConfig; 
use Drupal\taxonomy\Entity\Term; 

/** 
* Implements hook_install(). 
*/ 
function first_view_install() { 

} 

/** 
* Implements hook_uninstall(). 
*/ 
function first_view_uninstall() { 

} 

/** 
* Implements hook_schema(). 
*/ 
function first_view_schema() { 
$schema['first_view_table'] = [ 
    // Example (partial) specification for table "node". 
    'description' => 'The base table for first_view.', 
    'fields' => [ 
     'id' => [ 
     'description' => 'The primary identifier for a node.', 
     'type' => 'serial', 
     'unsigned' => TRUE, 
     'not null' => TRUE, 
     ], 
     'name' => [ 
     'description' => 'The name of Employee.', 
     'type' => 'varchar', 
     'length' => 32, 
     'not null' => TRUE, 
     'default' => '', 
     ], 
     'age' => [ 
     'description' => 'The age of employee.', 
     'type' => 'int', 
     'unsigned' => TRUE, 
     'not null' => TRUE, 
     'default' => 0, 
     ], 
     'is_active' => [ 
     'description' => 'The activity of employee.', 
     'type' => 'int', 
     'not null' => TRUE, 
     'default' => 0, 
     ], 
     'timestamp' => [ 
     'description' => 'The timestamp of employee.', 
     'type' => 'int', 
     'unsigned' => TRUE, 
     'not null' => TRUE, 
     'default' => 0, 
     ], 
     'project_code' => [ 
     'description' => 'The project code of employee.', 
     'type' => 'varchar', 
     'length' => 32, 
     'not null' => TRUE, 
     'default' => 0, 
     ], 
    ], 

    'unique keys' => [ 
     'id' => ['id'], 
    ], 
    // For documentation purposes only; foreign keys are not created in the 
    // database. 

    'primary key' => ['id'], 
    ]; 
    return $schema; 
} 

4.私たちはインストールして有効にすると.... --- first_view.views.inc をファイルを作成し、上記の手順に従うことで

<?php 

/** 
* Implements hook_views_data(). 
*/ 
function first_view_views_data() { 




    $data = []; 


    $data['first_view_table'] = []; 
    $data['first_view_table']['table'] = []; 
    $data['first_view_table']['table']['group'] = t('First View table'); 
    $data['first_view_table']['table']['provider'] = 'first_view_module'; 

    $data['first_view_table']['table']['base'] = [ 

    'field' => 'id', 
    'title' => t('First View table'), 
    'help' => t('First View table contains example content and can be related to nodes.'), 
    'weight' => -10, 
    ]; 


    $data['first_view']['table']['join'] = [ 

    'node_field_data' => [ 
     'left_field' => 'id', 
     'field' => 'id', 
     'extra' => [ 
     0 => [ 
      'field' => 'published', 
      'value' => TRUE, 
     ], 
     1 => [ 
      'left_field' => 'age', 
      'value' => 1, 
      'numeric' => TRUE, 
     ], 
     2 => [ 
      'field' => 'published', 
      'left_field' => 'is_active', 
      'operator' => '!=', 
     ], 
     ], 
    ], 
    ]; 


    $data['first_view_table']['table']['join']['node_field_data'] = [ 

    'left_table' => 'foo', 
    'left_field' => 'id', 
    'field' => 'id', 
    'extra' => [ 
     ['left_field' => 'project_code', 'field' => 'project_code'], 
     ['field' => 'age', 'value' => 0, 'numeric' => TRUE, 'operator' => '>'], 
    ], 
    ]; 


    $data['first_view_table']['id'] = [ 
    'title' => t('Example content'), 
    'help' => t('Relate example content to the node content'), 

    'relationship' => [ 
     'base' => 'node_field_data', 
     'base field' => 'id', 
     'id' => 'standard', 
     'label' => t('Example node'), 
    ], 
    ]; 


    $data['first_view_table']['name'] = [ 
    'title' => t('Name'), 
    'help' => t('Just a Name field.'), 
    'field' => [ 
     'id' => 'standard', 
    ], 

    'sort' => [ 
     'id' => 'standard', 
    ], 

    'filter' => [ 
     'id' => 'string', 
    ], 

    'argument' => [ 
     'id' => 'string', 
    ], 
    ]; 


    $data['first_view_table']['project_code'] = [ 
    'title' => t('Project Code'), 
    'help' => t('Just a Project code field.'), 
    'field' => [ 
     'id' => 'standard', 
    ], 

    'sort' => [ 
     'id' => 'standard', 
    ], 

    'filter' => [ 
     'id' => 'string', 
    ], 

    'argument' => [ 
     'id' => 'string', 
    ], 
    ]; 

    $data['first_view_table']['age'] = [ 
    'title' => t('Age'), 
    'help' => t('Just a numeric field.'), 

    'field' => [ 
     'id' => 'numeric', 
    ], 

    'sort' => [ 
     'id' => 'standard', 
    ], 

    'filter' => [ 
     'id' => 'numeric', 
    ], 

    'argument' => [ 
     'id' => 'numeric', 
    ], 
    ]; 


    $data['first_view_table']['is_active'] = [ 
    'title' => t('Is Active'), 
    'help' => t('Just an on/off field.'), 

    'field' => [ 
     'id' => 'boolean', 
    ], 

    'sort' => [ 
     'id' => 'standard', 
    ], 

    'filter' => [ 
     'id' => 'boolean', 
     'label' => t('Published'), 
     'type' => 'yes-no', 
     'use_equal' => TRUE, 
    ], 
    ]; 


    $data['first_view_table']['timestamp'] = [ 
    'title' => t('Timestamp'), 
    'help' => t('Just a timestamp field.'), 

    'field' => [ 
     'id' => 'date', 
    ], 

    'sort' => [ 
     'id' => 'date', 
    ], 

    'filter' => [ 
     'id' => 'date', 
    ], 
    ]; 


    $data['views']['area'] = [ 
    'title' => t('Text area'), 
    'help' => t('Provide markup text for the area.'), 
    'area' => [ 
     'id' => 'text', 
    ], 
    ]; 

    return $data; 
} 

をit--するために、次のコードを追加しますモジュールがデータベース内で作成されるモジュール...ビュー内の一部のデータを表示するためにそれを設定する必要があります...テーブルにダミーデータを追加することを忘れないでください.....その後、構造/ビュー---そして "Add View"をクリックする----あなたのビューに名前をつける---そして "Show"ドロップダウンボックスでテーブル名を見ることができます---この場合テーブル名は「First View Table」です。この記事が参考になることを願っています....

関連する問題