За последние 24 часа нас посетили 20769 программистов и 1106 роботов. Сейчас ищут 416 программистов ...

Кружок по Yii

Тема в разделе "Прочие вопросы по PHP", создана пользователем Psih, 9 июл 2010.

?

Пользуетесь ли вы Yii?

  1. Нет, не пользуюсь.

    3 голосов
    33,3%
  2. Нет, у меня другой людимый фреймворк.

    1 голосов
    11,1%
  3. Начинаю с ним работать.

    3 голосов
    33,3%
  4. Да пользуюсь, всё хорошо.

    2 голосов
    22,2%
  1. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.340
    Симпатии:
    44
    'urlFormat'=>'path' стоит?
     
  2. Mr. T

    Mr. T Активный пользователь

    С нами с:
    10 ноя 2010
    Сообщения:
    733
    Симпатии:
    0
    Адрес:
    Украина, г. Киев
    Да,
    PHP:
    1. <?php
    2.             'rules' => array(
    3.                 '<page:\d+>' => '<controller>/index',
    4.                 '<controller:\w+>/<id:\d+>/<title:\w+>' => '<controller>/view',
    5.                 '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
    6.                 '<controller:\w+>/<action:\w+>' => '<controller>/<action>',
    7.             ),
    8.             'urlFormat' => 'path',
    , как убрать текст
    , смотрел документацию по классу CActiveDataProvider, не нашел там ничего подходящего :)
     
  3. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.340
    Симпатии:
    44
    Не знаю, никогда встроенными пагинаторами не пользовался.
    Видимо нужно для правил прописывать page руками, т.е. <page:\d*> дописывать куда нужно или вообще отказываться от правил и кушать стандартный path формат.
     
  4. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.340
    Симпатии:
    44
    '<page:\d+>' => '<controller>/index',
    вот это неверное правило, <controller> - это отсылка к параметру в левой части, а его нет, контроллер нужно прописать явно
     
  5. Mr. T

    Mr. T Активный пользователь

    С нами с:
    10 ноя 2010
    Сообщения:
    733
    Симпатии:
    0
    Адрес:
    Украина, г. Киев
    Хмм... правило
    Код (Text):
    1. '<controller:\w+>/<id:\d+>/<title:\w+>' => '<controller>/view'
    работает, получаются ссылки вида
    Код (Text):
    1. http://localhost/category/1/title/
    , а правило
    Код (Text):
    1. '<controller:\w+>/<id:\d+>/<title:\w+>/page/<page:\d+>' => '<controller>/view',
    - нет, такое:
    Код (Text):
    1. http://localhost/category/1/title/?page=N
     
  6. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
  7. Mr. T

    Mr. T Активный пользователь

    С нами с:
    10 ноя 2010
    Сообщения:
    733
    Симпатии:
    0
    Адрес:
    Украина, г. Киев
    tommyangelo, так и есть, спасибо :)
     
  8. Mr. T

    Mr. T Активный пользователь

    С нами с:
    10 ноя 2010
    Сообщения:
    733
    Симпатии:
    0
    Адрес:
    Украина, г. Киев
    Продолжаю задавать глупые вопросы, зачем в для контроллера PostController в документации по созданию блога для действия View переопределяется метод LoadModel. Я сравнивал начальный вариант с тем на который нужно изменить и так и не уловил сути этих изменений. Разъясните, пожалуйста :)
     
  9. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    1) Вообще, по Yii больше ответов будет здесь - http://yiiframework.ru/forum/index.php

    2) Если ты про это -

    PHP:
    1.  
    2. <?
    3. public function loadModel()
    4. {
    5.     if($this->_model===null)
    6.     {
    7.         if(isset($_GET['id']))
    8.         {
    9.             if(Yii::app()->user->isGuest)
    10.                 $condition='status='.Post::STATUS_PUBLISHED
    11.                     .' OR status='.Post::STATUS_ARCHIVED;
    12.             else
    13.                 $condition='';
    14.             $this->_model=Post::model()->findByPk($_GET['id'], $condition);
    15.         }
    16.         if($this->_model===null)
    17.             throw new CHttpException(404,'Запрашиваемая страница не существует.');
    18.     }
    19.     return $this->_model;
    20. }
    21.  
    то это написано ради добавления условий выборки из БД - показывать только опубликованные или архивные записи гостям, при попытке загрузить неопубликованную или неархивную запись будет выдано 404

    Суть в $condition
     
  10. Mr. T

    Mr. T Активный пользователь

    С нами с:
    10 ноя 2010
    Сообщения:
    733
    Симпатии:
    0
    Адрес:
    Украина, г. Киев
    tommyangelo, ок, CRUD генерирует такой метод loadModel
    PHP:
    1. <?php
    2. public function loadModel($id)
    3. {
    4.     $model = Post::model()->findByPk($id);
    5.     if ($model===null) {
    6.         throw new CHttpException(404, 'The requested page does not exist.');
    7.     }
    8.     return $model;
    9. }
    , если нужно добавить только условие, то у меня возникает вопрос, почему тогда не так
    PHP:
    1. <?php
    2. public function loadModel($id)
    3. {
    4.     if (Yii::app()->user->isGuest) {
    5.         $condition = 'status = ' . Post::STATUS_PUBLISHED . ' OR status = ' . Post::STATUS_ARCHIVED;
    6.     } else {
    7.         $condition = '';
    8.     }
    9.     $model = Post::model()->findByPk($id, $condition);
    10.     if ($model===null) {
    11.         throw new CHttpException(404, 'The requested page does not exist.');
    12.     }
    13.     return $model;
    14. }
    , а объявляем приватный член _model и работаем далее с ним уже :)
     
  11. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    Mr. T
    хм, да ты прав, я никогда не сравнивал. возможно просто руководство не обновили =)

    задай вопрос Александру Макарову - он же SamDark. Он один из core-разработчиков Yii, и заодно переводчик документации
     
  12. Mr. T

    Mr. T Активный пользователь

    С нами с:
    10 ноя 2010
    Сообщения:
    733
    Симпатии:
    0
    Адрес:
    Украина, г. Киев
    tommyangelo, зарегистрировался на форуме русскоязычного сообщества, буду мучить людей там :)
     
  13. Amertox

    Amertox Активный пользователь

    С нами с:
    21 мар 2011
    Сообщения:
    17
    Симпатии:
    0
  14. Mat

    Mat Активный пользователь

    С нами с:
    12 дек 2006
    Сообщения:
    391
    Симпатии:
    0
    и где я раньше был...
     
  15. kadet

    kadet Активный пользователь

    С нами с:
    2 авг 2010
    Сообщения:
    79
    Симпатии:
    0
    какая древняя тема, администратор еще живой?
     
  16. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Ты поднял некротред только ради интереса, жив ли администратор? Жив, но прячется.
     
  17. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    А вопрос-то какой?
     
  18. kadet

    kadet Активный пользователь

    С нами с:
    2 авг 2010
    Сообщения:
    79
    Симпатии:
    0
    давно не виделись, вопрос классический: как дела?
     
  19. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Для "как дела" у нас есть раздел "беседы".