<rmcreative>

RSS

Постраничная разбивка в Yii

29 июня 2010

Упоминание о простейшей постраничной разбивке в документации к последним версиям Yii было заменено работой с компонентами zii. Да, в API всё осталось, но шансы наткнуться на нужный класс снизились, поэтому опишу простейшую постраничную разбивку на примере.

Контроллер:

function actionIndex(){
        $criteria = new CDbCriteria();
 
    $count=Article::model()->count($criteria);
 
    $pages=new CPagination($count);
    // элементов на страницу
    $pages->pageSize=10;
    $pages->applyLimit($criteria);
 
    $models = Article::model()->findAll($criteria);
 
    $this->render('index', array(
        'models' => $models,
        'pages' => $pages
    ));
}

Шаблон view:

<?foreach($models as $model):?>
  // выводим модели
<?endforeach?>
 
// рисуем пейджер
<?$this->widget('CLinkPager', array(
    'pages' => $pages,
))?>

Комментарии RSS

  1. №2652
    Вячеслав
    Вячеслав 29 июня 2010 г., 15:56:02

    А если там в базе миллион записей? Это же они все будут в память выбираться в указанном выше примере. Есть ли возможность заюзать этот пейджер без предварительной выборки всех записей?

  2. №2656
    Sam
    Sam 29 июня 2010 г., 16:26:53

    Вячеслав, спасибо. Чуть ошибся с кодом. Поправил. Теперь будет выбираться только необходимый минимум.

  3. №2657
    андрей
    андрей 29 июня 2010 г., 16:29:22

    Как бы нет

    $pages->applyLimit($criteria);
    $models = Article::model()->findAll($criteria);

    оно как раз выбирает по 10))) передаем параметры в

    $pages

    мы добавляем к

    $criteria

    Limit 10 и какойто там offset

  4. №2658
    maxx
    maxx 29 июня 2010 г., 16:40:45

    По мне так лучше в контроллере сделать так:

    function actionIndex(){
        $Criteria = new CdbCriteria(array(
            Тут различные настройки выборки
            Плюс в том, что указываются в одном месте и не надо их 
            прописывать для запросов count() и findAll()
        ));
     
        $pages=new CPagination(Article::model()->count($Criteria));
        $pages->pageSize=10;
        $pages->applyLimit($Criteria); // Делаем так, что бы не выбирались абсолютно все записи
     
        $models = Article::model()->findAll($Criteria);
     
        if(!$models) $models = array(); // Это можно и не делать. В любом случае вернется массив
     
        $this->render('index', array(
            'models' => $models,
            'pages' => $pages
        ));
    }
  5. №2659
    maxx
    maxx 29 июня 2010 г., 16:41:35

    Блин. Пока писал уже поправили.

  6. №2660
    Sam
    Sam 29 июня 2010 г., 17:03:16

    maxx

    Спасибо, проверку на пустоту убрал.

  7. №2662
    idle
    idle 29 июня 2010 г., 17:48:57

    Александр, а чего это так случилось, что вроде класс и не deprecated, а в документации yii даются ссылки на zii.

    Быть может намекнуть Квану, что это как бы неправильно ;)

    А еще, я как-то упустил момент, когда CFileHelper обрёл copyDirectoryRecursive и findFilesRecursive, вроде как функциональность новая, а чейнджлоге не было.

  8. №2665
    Максим
    Максим 29 июня 2010 г., 22:13:40

    Мне правда больше нравится $this->paginate($count,10)->applyLimit($criteria) хоть оно и deprecated

    $this->paginate ?

    Кстати, похожым образом еще и сортировку можно делать:

    $sort=new CSort('Article');
    $sort->defaultOrder='title';
    $sort->applyOrder($criteria);
  9. №2666
    Sam
    Sam 29 июня 2010 г., 23:18:20

    idle

    Вообще он не в документации был, а в гайде по созданию блога. Блог перевели на zii. Описание обновили. Соответственно часть с применением пейджинга была потеряна.

    Кстати, смотрю в API по CPagination примера-то нет. Подумываю туда этот пример засунуть.

    CFileHelper вроде всегда умел рекурсивно удалять и копировать папки, да ещё и фильтровать то, что копирует. Я его в сборщике релизов YiiExt применил ещё когда Yii был 1.0.

    Максим

    Ну, сортировка таким образом жизнь особо не упрощает.

  10. №2667
    Tokolist
    Tokolist 30 июня 2010 г., 1:00:09

    А почему так нельзя?

    public function actionUsers()
    {
     $dataProvider=new CActiveDataProvider('Users', array(
      'criteria'=>array(
       'order'=>'registrationdate DESC',
      ),
      'pagination'=>array(
       'pageSize'=>Yii::app()->params['usersPerPage'],
      ),
     ));
     
     $this->render('users',array(
      'dataProvider'=>$dataProvider,
     ));
    }
    <?php foreach($dataProvider->data as $user):?>
     
    <?php endforeach; ?>
     
     
    <?php $this->widget('CLinkPager',array('pages'=>$dataProvider->pagination)); ?>
  11. №2669
    maxx
    maxx 30 июня 2010 г., 10:07:06

    Было бы не плохо, если бы в CLinkPager был какой нибудь флаг, что бы можно было его поставить в true и результат работы виджета не выводился сразу через echo, а возвращался через return. Иначе, если надо выводить пейджинг сверху снизу, то каждый раз все будет просчитываться заново. А так сунул в переменную и выводишь ее сколько надо раз. Единственное, что будут траблы с id.

  12. №2670
    maxx
    maxx 30 июня 2010 г., 10:25:11

    Блин. Ступил. Надо было смотреть выше в класс CWidget.

  13. №2674
    Sam
    Sam 30 июня 2010 г., 12:58:46

    Tokolist

    Так можно, хотя способ этот появился гораздо позже и используется в основном с всякими CListView и CGridView.

  14. №2680
    Sam
    Sam 01 июля 2010 г., 16:10:04

    Добавил пример в API. С релизом будет показываться на сайте.

  15. №2727
    test
    test 16 июля 2010 г., 17:26:23

    а как пагиновать не ActiveRecord объекты а например, обычный массив?

  16. №2729
    Sam
    Sam 16 июля 2010 г., 17:41:11

    Его и вручную достаточно просто:

    кол-во страниц = всего в массиве / кол-во на страницу
    начало = номер страницы * кол-во на страницу
    конец = номер страницы * кол-во на страницу + кол-во на страницу
    элементы на данной странице = array_slice(массив, начало, конец)

    Можно, конечно, в компонент оформить.

  17. №2772
    test
    test 22 июля 2010 г., 16:17:31

    конкретно мне непонятно как applyLimit (например 20 айтемов на странице) реализовать в таком случае

  18. №2773
    Sam
    Sam 22 июля 2010 г., 21:02:51

    Через array_slice.

  19. №3624
    Mark
    Mark 27 дек. 2010 г., 12:26:00

    круто

  20. №5472
    Roman
    Roman 03 окт. 2011 г., 23:09:06

    Нет простого примера для ajax пагинации/сортировки?

  21. №5829
    qwenchi
    qwenchi 05 февр. 2012 г., 22:02:33

    Вот вопрос Например есть category и post; Они связаны, как через категорий пагиновать post?

    if($id)
            {            $categories=Category::model()->with('Posts')->findByPk($id);
                $this->render('view',array('posts'=>$posts));
            }

    как думаете можно пагтновать посты?

  22. №5832
    Sam
    Sam 06 февр. 2012 г., 0:41:50

    В смысле постранично разбивать? Попробуйте выборку сделать из постов, а не из категорий.

  23. №6188
    Николай
    Николай 01 мая 2012 г., 12:48:13

    Спасибо большое! Долго искал, как можно сделать постраничную навигацию без CActiveDataProvider!

  24. №6450
    karpo518
    karpo518 16 июля 2012 г., 1:04:23

    Читал книгу, дошёл до сортировки и пагинации, не понял, начал гуглить. Как мы определяем, на какой странице находимся, ведь в действие не приходят никакие пареметры? Может, конечно, что-то неправильно понял, ведь изучаю пока на теории и вид ссылок пагинации не видел. Но информацию о смещении в действии я не вижу.

  25. №6451
    Sam
    Sam 16 июля 2012 г., 1:16:24

    Приходят. Сделайте var_dump() для $_GET и $_POST.

  26. №6485
    Den
    Den 25 июля 2012 г., 14:09:01

    Всем доброго времени суток! Прошу помочь с пагинацией.... есть галерея работающая без БД, просто читает картинки из папки, и выводит их на экран. В галерее не было сортировки по порядку. Прикрутил. Но теперь пагинация не работает. может Вы подскажите что изменить или новую пагинацию прикрутить. только не знаю как. заранее спасибо.

    <?
      $cat=urldecode($cat);
      if(file_exists("./files/$cat"))
        {
        chdir("./files/$cat");
        $scan_dir=opendir(".");
        while($scan_dir2=readdir($scan_dir))
          {
          $arr=explode(".",$scan_dir2);
          $end=strtolower(end($arr));
          if($scan_dir2!="." && $scan_dir2!=".." && in_array($end,$types)) $r++;
          }
        $pages=ceil($r/$f);
        if($page=="" || $page=="0" || $page>$pages) $page=1;
        if(file_exists("info.dat"))
          {
          $file=fopen("info.dat",r);
          $title_cat=fgets($file);
          clearstatcache();
          }
        else {
     
        $title_cat=urldecode($cat);
     
     
        #$title_cat=="Main";
        #if ($title_catz==urldecode($cat) || $title_catZ!=" ") {$title_cat==$title_catz;}
     
        #$title_cat="Категория NONAME";
        }
        ?>
     
        <?echo$title_cat;?> <span style=" text-align:left; padding:3px 0 0 5px; font-size:0.8em;color:#06a;">(Photos:<?echo$r;?>)</span></p>
     
    <div style='margin:-2px auto 2px; width:90%; '>
        <table cellspacing=1 cellpadding=6 width="100%" align=center border=0>
     
         <tr>
          <td style="padding:0 0 10px 0;" colspan=<?echo$x;?> valign=middle align=center><?
          if($pageɭ) echo "<a href=\"index.php?cat=$cat&page=".($page-1)."\"><</a>&nbsp;&nbsp;";?>
          <!--Страницы:--> 
          <?pages($r);?><?
          if($page<$pages) echo "&nbsp;&nbsp;<a
          href=\"index.php?cat=$cat&page=".($page+1)."\">></a>&nbsp;&nbsp;";?></td>
         </tr>
     
    <?
        $i=$ii=1;
        $start=($page-1)*$f+1;
        $end=$page*$f;
     
     
     
        $dir_gal=opendir(".");
        $myArray = array();//
     
        while(false !== ($image=readdir($dir_gal)))//($image=readdir($dir_gal))
          {
          $arr=explode(".",$image);
          $ext=strtolower(end($arr));
          if($image!="." && $image!=".." && in_array($ext,$types) && filetype("$image")=="file")
            {
            $myArray[] = $image; 
            }
          }
     
    closedir($dir_gal);
     
    natsort($myArray);
     
     
          foreach ($myArray as $val) {
                  if($ii>=$start && $ii<=$end)
              { 
              if($i==1) echo "<tr>";
              $info_img=getimagesize($image);
     
     
             echo "  
            <td valign=middle align=center>
            <div class=pic_in>
            <div style=\"background:url(image.php?cat=".urlencode($cat)."&image=$val) no-repeat 50% 50%;\" class=\"pic\">
            <a class=\"group4\" href=\"".$linksite."gallery/files/".urlencode($cat)."/$val\" title=".urlencode($cat)." >".urlencode($cat)."</a>
     
            </div>
            </div>
              ";
              echo "</td>";
              }
     
              if($i==$x) { echo "</tr>"; $i=1; }
              else $i++;
              }
     
            $ii++;
     
          ?>
         <tr>
          <td colspan=<?echo$x;?> valign=middle align=center><?
          if($pageɭ) echo "<a
          href=\"index.php?cat=$cat&page=".($page-1)."\"><</a>&nbsp;&nbsp;";?>
          <!--Страницы:--> <?pages($r);?><?
          if($page<$pages) echo "&nbsp;&nbsp;<a
          href=\"index.php?cat=$cat&page=".($page+1)."\">></a>&nbsp;&nbsp;";?></td>
         </tr>
       </table><?
        }
      else
        {?>
       <table class=tborder cellspacing=1 cellpadding=6 width="100%" align=center border=0>
         <tr>
          <td align=middle><?include("design/index.tpl");?></td>
         </tr>
       </table><?
        }?>
  27. №6487
    Sam
    Sam 25 июля 2012 г., 14:38:09

    Den, и при чём тут Yii?

  28. №6491
    Den
    Den 25 июля 2012 г., 16:56:01

    Просто смотрю тут вменяемые люди общаются на других форумах люди не охотно хотят помочь. Очень извиняюсь если порчу всю картину своим постом!

  29. №6494
    Sam
    Sam 26 июля 2012 г., 1:35:25

    Разбирайтесь. Кода многовато, чтобы сходу подсказать. Отлаживать, к сожалению, некогда.

  30. №6610
    Алексей
    Алексей 08 сент. 2012 г., 17:04:48

    добрый день! у меня такой вопрос, можно ли изменить ссылку пагинации, т.е. есть такая ссылка tema.da/kategoriya/62 а когда навожу на пагинацию то создается такая tema.da/kategoriya/62.html?page=2, можно ли как то управлять этим?

  31. №6614
    Sam
    Sam 09 сент. 2012 г., 0:05:47

    Да, в URL manager правил добавить.

  32. №6618
    Алексей
    Алексей 09 сент. 2012 г., 21:17:53

    подробней пожалуйста

  33. №6619
    Sam
    Sam 09 сент. 2012 г., 22:42:39
    'kategoriya/<id>/<page>' => 'category/view',
    'kategoriya/<id>' => 'category/view',
  34. №6822
    porcelanosa
    porcelanosa 11 окт. 2012 г., 14:53:57

    А что нибудь для бесконечного скрола можно готовое найти?

  35. №6828
    Sam
    Sam 12 окт. 2012 г., 18:00:23
  36. №7263
    Владимир
    Владимир 19 дек. 2012 г., 17:42:41

    Странно ,в качестве оптимизации ,не правильнее будет сначала найти все статьи как вы делали. $models = Article::model()->findAll($criteria); а потом просто $count=count($models); вместо $count=Article::model()->count($criteria); ?

  37. №7264
    Sam
    Sam 19 дек. 2012 г., 21:30:24

    Владимир, конечно же не правильнее. Так у вас выберется полностью 10000 статей и сделается от них count.

  38. №7265
    Владимир
    Владимир 19 дек. 2012 г., 22:01:38

    Ну получает $count=Article::model()->count($criteria); вы посчитываете количество(1ое обращение к БД), предположим по критериям выбрано 999, Потом $models = Article::model()->findAll($criteria); вы опять обращаетесь к базе, и Criteria вы же нигде не меняете, как было оно такое же для первого запроса, так и для второго. и тоже отберет 999?

  39. №7266
    Владимир
    Владимир 19 дек. 2012 г., 22:02:50

    А подсчет количества элементов у обычного массива,(т.к. он в памяти) быстрее чем подсчёт через обращение к БД.

  40. №7273
    Sam
    Sam 20 дек. 2012 г., 13:51:24

    Э, нее. Общее количество используется только для рассчёта количества страниц. Выгружается реально 10 записей (или сколько там на страницу).

  41. №7279
    Владимир
    Владимир 20 дек. 2012 г., 15:09:10

    А ну тогда да, а то по коду смотришь и думаешь что criteria не меняется

  42. №7282
    Sam
    Sam 20 дек. 2012 г., 16:42:45

    Владимир, не рановато курс затеяли? Качественно будет или как у народа в прошлые разы?

  43. №7285
    Владимир
    Владимир 20 дек. 2012 г., 17:31:56

    Я курс нигде кроме своего сайта, не обьявлял, так как до своего сайта руки не доходят, не успеваю, а курс всё таки надо качественно подготовить, сделал страничку чтобы уже поисковики индексировали. И программа курса возможно будет совершенно другая, к примеру есть высоконагруженный проект и уже становится понятно что от ActiveRecord придется полностью отказаться, сервер прямо на глазах сыплется от нехватки памяти. Если вы не против, я вышлю пару уроков вам для оценки стоит ли так делать или нет. Не хочу людей учить не правильным вещам.

  44. №7286
    Sam
    Sam 20 дек. 2012 г., 17:45:50

    Это хорошая идея. Почта у меня тут: http://rmcreative.ru/author

  45. №7662
    Александр
    Александр 11 марта 2013 г., 15:35:01

    Добрый день уважаемому сообществу. Заранее прощу прощения, если вопрос сформулирую некорректно, поскольку я в yii пока новичок. Вопрос такой. в main.php rules = array( ... '<language:(ru|ua|en)>/akti//'=>'akti/index', '<language:(ru|ua|en)>/akti//'=>'akti/index', ) страница вида localhost/kodeksi.com/ru/akti/grazhdanskijj-kodeks-ukrainy.html работает нормально. Подключаю Пагинацию и получаю localhost/kodeksi.com/ru/akti.html?akt=grazhdanskijj-kodeks-ukrainy&page=2. Такой вариант тоже работает. А вот localhost/kodeksi.com/ru/akti/grazhdanskijj-kodeks-ukrainy/page/2.html

    Ошибка 404 Невозможно обработать запрос "ru/akti/grazhdanskijj-kodeks-ukrainy/page/2".

    Подскажите, пожалуйста, что я не так делаю. Заранее спасибо.

  46. №7663
    Sam
    Sam 11 марта 2013 г., 18:03:23

    Нужно прописать выше стандартные правила, которые генерятся через yiic webapp и модифицировать их добавив язык.

  47. №7664
    Александр
    Александр 11 марта 2013 г., 18:07:08

    Спасибо. проблему решил.

    '<language:(ru|ua|en)>/akti/<akt:>/page/<page:\d+>'=>'akti/index',
  48. №7968
    frazelli
    frazelli 15 мая 2013 г., 7:32:11

    Добрый день. У меня страницы делятся и выводятся по категориям.

    public function actionIndex($id)
        {        
           $criteria=new CDbCriteria;
           $count=Page::model()->count($criteria);
     
           $pages=new CPagination($count);
        // элементов на страницу
           $pages->pageSize=10;
           $pages->applyLimit($criteria);
     
            $criteria->compare('category_id', $id);
            $criteria->order = 'id DESC';
            $models = Page::model()->FindAll($criteria);
            $category = Category::model()->FindByPk(array($id));
     
            $this->render('index', array('models'=>$models,  'category'=>$category,  'pages' => $pages,));
     
        }

    В категориях пейджер выводит больше страниц чем надо (пустые страницы).

    Подскажите как это исправить?

  49. №7971
    Sam
    Sam 15 мая 2013 г., 13:17:48

    Критерий надо строить до count.

  50. №7986
    Reinchold
    Reinchold 21 мая 2013 г., 13:05:52

    Возможно ли в "applyLimit" указать два и вольше критерий запросов. Я к примеру сделал поиск по сайту и у меня есть несколько обращений в базу данных, потом я просто делаю слияние массивов в count, а вот как в "applyLimit" это указать?

    // User search
    $criteria_user = new CDbCriteria(array(
        'condition' => 'name LIKE :keyword OR 
        surname LIKE :keyword OR 
        email LIKE :keyword',
        'order' => 'name ASC',
        'params' => array(
             ':keyword' => '%'.$search->string.'%',
            ),
     ));
     
     
    // Book search
    $criteria_book = new CDbCriteria(array(
        'condition' => 'name LIKE :keyword OR 
        shortname LIKE :keyword',
        'order' => 'name ASC',
        'params' => array(
        ':keyword' => '%'.$search->string.'%',
        ),
    ));
    $materialCountUser = User::model()->count($criteria_user);
    $materialCountBook = Book::model()->count($criteria_book);
     
    $materialCount = $materialCountUser + $materialCountBook;
     
    $pages = new CPagination($materialCount);
    $pages->pageSize = 10;
     
    $pages->applyLimit('????????????');
     
    $materials_user = User::model()->findAll($criteria_user);
    $materials_school = School::model()->findAll($criteria_school);
     
    $this->render('admin',array(
        'materials' => array_merge($materials_user, $materials_book),
            'pages' => $pages,
            'search' => $search,
    ));
  51. №8153
    Xam
    Xam 12 июля 2013 г., 23:16:17

    подскажите, чуть не в тему правда. прикрутил Yii::import('zii.widgets.CListView'); class TbListView extends CListView как мне установить правила формирования ссылок. Спасибо =)

  52. №8154
    Xam
    Xam 12 июля 2013 г., 23:18:22

    только сильно не ругайте

  53. №8533
    Ra
    Ra 04 нояб. 2013 г., 13:57:07

    А вот такие правила верны? 'news/<page:\d+>'=>'news/page/<page:\d+>', 'news/page/<page:\d+>'=>'post/index',

    Так и в пейджере и на сайте ссылки отображаются как news/page/1

  54. №8607
    dadicc
    dadicc 21 нояб. 2013 г., 22:24:43

    приветствую

    подскажите как настроить чтобы перекидывало на страницу с ошибкой 404, когда лимит страниц превышается

    допустим /index.php?page=1 для первой страницы /index.php?page=10 для последней страницы

    /index.php?page=100 все равно выдает последнюю страницу, то есть /index.php?page=10

    как это исправить, чтобы выдавалась ошибка 404 ?

  55. №8770
    Александр
    Александр 24 янв. 2014 г., 0:08:38

    Доброго времени суток. Возникла проблема с пагинацией в GridView

    localhost/tourlandia.com.ua/dashboard/suppliers/view/ajax/yw0/Shambala%5Bid%5D//Shambala%5Btourlandia_id%5D//Shambala%5Btitle%5D/Tatonka/Shambala%5Bopt_e%5D//Shambala%5Bopt_uah%5D//Shambala%5Brrc_e%5D//Shambala%5Brrc_uah%5D//Shambala%5Bqty_dnepr%5D//Shambala%5Bqty_kiev%5D//Shambala_page/2/supplayer/Shambala.html на локальной машине все в порядке, но при переносе на хостинг // читаются сервером как одна и поэтому пара ключ значение работаю неправильно.

    Не подскажете, где нужно поменять настройки?

    Заранее спасибо и извините за беспокойство.

  56. №8771
    Sam
    Sam 25 янв. 2014 г., 11:37:18

    Александр, не понял, в чём именно проблема. Давайте лучше на форум.

  57. №9053
    Sam
    Sam 08 июня 2014 г., 1:20:19

    Спасибо большое! Очень познавательно. То что нужно...

  58. №9118
    Плютов Саша
    Плютов Саша 22 июля 2014 г., 17:33:24

    А для динамических данных лучше использовать курсоры: plutov.by/post/cursor_pagination

  59. №9289
    Roma
    Roma 22 окт. 2014 г., 12:39:36

    Не понимаю как в примере работает $criteria, ведь она по сути у нас "пустая", мы же не указывали никаких условий. Почему здесь $models = Article::model()->findAll($criteria); вытащиться 10 обектов? Как работает вот эта строка $pages->applyLimit($criteria); ?

  60. №9290
    Roma
    Roma 22 окт. 2014 г., 12:45:46

    А понял, именно эта строка $pages->applyLimit($criteria); и устанавливает limit = 10. Можно же вместо неё просто написать $criteria->limit = 10; ? Это будет идентично?

  61. №9296
    Sam
    Sam 23 окт. 2014 г., 16:24:28

    Roma, в случае limit да, в случае offset нет.

  62. №9418
    Евгений
    Евгений 28 нояб. 2014 г., 12:00:04

    А как сделать, чтобы были только две кнопки - вперед и назад? В этом случае можно не делать запрос, выводящий количество всех статей, а достачно посчитать, сколько выдало на текущей страцние. Например, если выдало 10 постов, и всего надо 10, то наверняка и на следущей странице будут посты, значит делает активной кнопку вперед

  63. №9423
    Sam
    Sam 28 нояб. 2014 г., 16:39:06

    Вперёд-назад — это просто OFFSET в запросе.

  64. №9468
    Andrey
    Andrey 05 дек. 2014 г., 11:39:53

    Добрый день уважаемый Александр!

    Можете глянуть, в чем может быть проблема? yiiframework.ru/forum/viewtopic.php?f=3&t=20687&e=1&view=unread#unread

    Авторы данных блогов ответов не дали, при всем к ним уважении, на fl.ru обратился, там тоже как то глухо, посмотрите пожалуйста!

  65. №9500
    Сергей
    Сергей 20 дек. 2014 г., 20:48:59

    Подскажите пожалуйста! А как Yii 2 сделать ЧПУ разбивку по страницам? Сейчас страница добавляется через &.

    И еще одни вопрос, какие настройки будут правильными в urlManager. Ведть сейчас получается что под каждый адрес нужно дублировать страницу с указанием /page/, то есть: было 'test/' => 'test/letter', а нужно будет сделать 2 строки 'test//<page:\d+>' => 'test/letter',

    В Yii1 такого делать не нужно было!

  66. №9501
    Сергей
    Сергей 20 дек. 2014 г., 20:51:55

    Ведть сейчас получается что под каждый адрес нужно дублировать страницу с указанием /page/, то есть: было test/' => test/letter а нужно будет сделать 2 строки test/ => test/letter test/<page:\d+> => test/letter

    Можно ли написать универсальное правило?

  67. №9594
    Александр
    Александр 29 янв. 2015 г., 23:52:48

    Сделал по примеру и у меня почему то лимит записей возводится в квадрат, и столько записей на странице отображает. Почему так?

  68. №9854
    Махакан
    Махакан 30 июня 2015 г., 17:39:30

    Интересует как сделать в постраничной навигации для gridview параметр - сколько строк выводить на одной странице (5, 10, 20, 100). Можно ли это сделать стандартными средствами yii2?

  69. №9857
    Sam
    Sam 30 июня 2015 г., 22:21:11
  1. Почта опубликована не будет.

  2. Можно использовать синтаксис Markdown или HTML.

  3. Введите ответ в поле. Щёлкните, чтобы получить другую задачу.