[Drupal] バックエンドでViewsの結果を取得する
Viewsは通常ディスプレイ(ページ、ブロック、JSON、CSVなど)を通して結果を取得しますが、プログラムで取得することも可能です。
サンプルコード
use Drupal\views\Views;
// コンテンツ一覧のビューを取得.
$view = Views::getView('MY_VIEW_ID');
// ページディスプレイをセット.
$view->setDisplay('MY_DISPLAY_ID');
// 外部設置フィルターの値をセット.
$view->setExposedInput([
'MY_KEY' => 'test',
]);
// ビューを実行.
$view->execute();
// 結果を取得.
$results = $view->result;
MY_VIEW_ID
などの引数は対象のビューのものを使用する必要があります。ちょっとわかりづらいかもしれませんが、それぞれ以下の方法で確認できます。
-
MY_VIEW_ID
: ビューのシステム内部名称。/admin/structure/views
で確認できる -
MY_DISPLAY_ID
: ディスプレイの内部名称。ビューの編集画面で該当のディスプレイを表示するとURLの最後に表示される。コンテンツ一覧の場合、編集画面のURLは/admin/structure/views/view/content/edit/page_1
なのでディスプレイの内部名称はpage_1
-
MY_KEY
: 該当のフィルターの設定画面のフィルターの識別子
参考
Author And Source
この問題について([Drupal] バックエンドでViewsの結果を取得する), 我々は、より多くの情報をここで見つけました https://qiita.com/863/items/0994fd31739e9b0aa1f2著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .