2016-10-25 80 views

回答

2

我相信你想創建表數據的列表頁面。以下是您可以如何使用分頁和列排序創建表格列表。

假設您有一個名爲「students」的表格,其中包含以下字段。 ID,名稱,電子郵件地址

1.在模塊的以下路徑中創建一個控制器。 模塊/ your_module/src目錄/控制器/ StudentsController.php

<?php 
namespace Drupal\your_module\Controller; 
use Drupal\Core\Controller\ControllerBase; 
class StudentsController extends ControllerBase { 

    public function __construct() { 

    } 

    public function list() { 
     $header = array(
      array('data' => t('ID'), 'field' => 'st.id'), 
      array('data' => t('Name'), 'field' => 'st.name'), 
      array('data' => t('Email'), 'field' => 'st.email'), 
     ); 
     $query = db_select('students', 'st') 
     ->fields('st', array('id', 'name', 'email')) 
     ->extend('Drupal\Core\Database\Query\TableSortExtender') 
     ->extend('Drupal\Core\Database\Query\PagerSelectExtender') 
     ->orderByHeader($header); 
     $data = $query->execute(); 
     $rows = array(); 
     foreach ($data as $row) { 
      $rows[] = array('data' => (array) $row); 
     } 
     $build['table_pager'][] = array(
      '#type' => 'table', 
      '#header' => $header, 
      '#rows' => $rows, 
     ); 
     $build['table_pager'][] = array(
      '#type' => 'pager', 
     ); 
     return $build; 
    } 
} 

所以,你的控制器動作是準備好了,現在你必須爲了創造此房源頁面路徑添加路由。

2.在您的模塊文件夾內創建routing.yml文件,如下面提到的文件名和下面的代碼。 模塊/ your_module/your_module.routing.yml

students.list: 
    path: 'admin/config/students/list' 
    defaults: 
    _controller: 'Drupal\your_module\Controller\StudentsController::list' 
    _title: 'Students List' 
    requirements: 
    _permission: 'access students list' 

3.要創建權限,你可以創建你的模塊在跟隨着ING文件。 模塊/ your_module/your_module.permissions.yml

access students list: 
    title: 'Access students list page' 
  • 清除CMS緩存
  • 進入人們=>權限,啓用相關的用戶角色的權限。

然後,瀏覽你的網頁 「管理/配置/學生/列表

相關問題