Как реализовать пагинацию

Главные вкладки

Аватар пользователя Riaron Riaron 27 августа 2019 в 10:19

ВКак реализовать пагинацию кастомно сделанного модуля

<?phpfunction hello_orders() { 
      $user = User::load(\Drupal::currentUser()->id());
    $query = \Drupal::database()->select('orderid', 'nfd');
    $query->fields('nfd', ['orderid']);
    $ids = $query->execute()->fetchAll();
    //$len=count($ids);
    $b="<hr><br><div class='order'>";

    foreach($ids as $id){
    $query = \Drupal::database()->select('orders', 'nfd');
    $query->fields('nfd', ['good_type', 'article','good_name','price', 'date']);
    $query->condition('nfd.orderid', $id->orderid);
    $result = $query->execute()->fetchAll();
    foreach($result as $results){
    $a.=  "<span> артикул: ".$results->article."|| Название: ".$results->good_name."</span>||".
    "<span>Тип Товара: ||".$results->good_type."|| Дата заказа: ".$results->date."</span><br>".
    "<span> Цена: ".$results->price."р.</span>";
    $tot+=$results->price;
    }
    $c="Итого:$tot<br>
    <a href=dforders?orderid=".$id->orderid.">Заказ Завершен</a></div> </div>";
    $ret.=$b.$a.$c;
    $ww.=$ret;
    $ret='';

  }
  return $ww;}?>

Комментарии

Аватар пользователя w_andreu_w w_andreu_w 28 августа 2019 в 12:19

Посмотрите пример вывода нод с постраничной навигацией

$items_per_page = 10;

$header = ['title'      => [
                'data'      => t('title'),
                'field'     => 'title',
                'specifier' => 'title',
        ],
       
  ];

$nids = \Drupal::entityQuery('node')
        ->tableSort($header)
        ->condition('type', 'page')
        ->condition('status', 1)
        ->pager($items_per_page)
        ->execute();

$rows = [];

foreach($nids as $nid) {
        $node = \Drupal\node\Entity\NODE::load($nid);
        $row = [
         'data' => [
                 $node->title->value,
                 $node->field_lot_supplier->value,
                 $node->field_lot_brands->value,
                ]
          ];

        $rows[] = $row;
}

$render = [
        'table'           => [
                '#theme'         => 'table',
                '#attributes'    => [
                        'data-striping' => 0
                ],
                '#header' => $header,
                '#rows'   => $rows,
        ],
        'pager' =>  ['#type' => 'pager'],
];
return $render;

Аватар пользователя Riaron Riaron 2 сентября 2019 в 13:10

как сделать пагинацию для $ret функцией pager?

<?php  $query = \Drupal::database()->select('orderid''nfd');
    
$query->fields('nfd', ['orderid']);
    
$ids $query->execute()->fetchAll();
    
//$len=count($ids);
    
$b="<hr><br><div class='order'>";

    foreach(

$ids as $id){
    
$query = \Drupal::database()->select('orders''nfd');
    
$query->fields('nfd', ['good_type''article','good_name','price''date']);
    
$query->condition('nfd.orderid'$id->orderid);
    
$result $query->execute()->fetchAll();
    foreach(
$result as $results){
    
$a.=  "<span> артикул: ".$results->article."|| Название: ".$results->good_name."</span>||".
    
"<span>Тип Товара: ".$results->good_type."|| Дата заказа: ".$results->date."</span><br>".
    
"<span> Цена: ".$results->price."р.</span>";
    
$tot+=$results->price;
    }
    
$c="Итого:$tot<br>
    <a href=dforders?orderid="
.$id->orderid.">Заказ Завершен</a></div> </div>";
    
$ret[]=$b.$a.$c;?>