Да, PHP: <?php 'rules' => array( '<page:\d+>' => '<controller>/index', '<controller:\w+>/<id:\d+>/<title:\w+>' => '<controller>/view', '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>', '<controller:\w+>/<action:\w+>' => '<controller>/<action>', ), 'urlFormat' => 'path', , как убрать текст , смотрел документацию по классу CActiveDataProvider, не нашел там ничего подходящего
Не знаю, никогда встроенными пагинаторами не пользовался. Видимо нужно для правил прописывать page руками, т.е. <page:\d*> дописывать куда нужно или вообще отказываться от правил и кушать стандартный path формат.
'<page:\d+>' => '<controller>/index', вот это неверное правило, <controller> - это отсылка к параметру в левой части, а его нет, контроллер нужно прописать явно
Хмм... правило Код (Text): '<controller:\w+>/<id:\d+>/<title:\w+>' => '<controller>/view' работает, получаются ссылки вида Код (Text): http://localhost/category/1/title/ , а правило Код (Text): '<controller:\w+>/<id:\d+>/<title:\w+>/page/<page:\d+>' => '<controller>/view', - нет, такое: Код (Text): http://localhost/category/1/title/?page=N
документацию не к тому смотрел http://www.yiiframework.com/doc/api/1.1 ... ate-detail На счет пейджера че-то затрудняюсь, надо код смотреть.
Продолжаю задавать глупые вопросы, зачем в для контроллера PostController в документации по созданию блога для действия View переопределяется метод LoadModel. Я сравнивал начальный вариант с тем на который нужно изменить и так и не уловил сути этих изменений. Разъясните, пожалуйста
1) Вообще, по Yii больше ответов будет здесь - http://yiiframework.ru/forum/index.php 2) Если ты про это - PHP: <? public function loadModel() { if($this->_model===null) { if(isset($_GET['id'])) { if(Yii::app()->user->isGuest) $condition='status='.Post::STATUS_PUBLISHED .' OR status='.Post::STATUS_ARCHIVED; else $condition=''; $this->_model=Post::model()->findByPk($_GET['id'], $condition); } if($this->_model===null) throw new CHttpException(404,'Запрашиваемая страница не существует.'); } return $this->_model; } то это написано ради добавления условий выборки из БД - показывать только опубликованные или архивные записи гостям, при попытке загрузить неопубликованную или неархивную запись будет выдано 404 Суть в $condition
tommyangelo, ок, CRUD генерирует такой метод loadModel PHP: <?php public function loadModel($id) { $model = Post::model()->findByPk($id); if ($model===null) { throw new CHttpException(404, 'The requested page does not exist.'); } return $model; } , если нужно добавить только условие, то у меня возникает вопрос, почему тогда не так PHP: <?php public function loadModel($id) { if (Yii::app()->user->isGuest) { $condition = 'status = ' . Post::STATUS_PUBLISHED . ' OR status = ' . Post::STATUS_ARCHIVED; } else { $condition = ''; } $model = Post::model()->findByPk($id, $condition); if ($model===null) { throw new CHttpException(404, 'The requested page does not exist.'); } return $model; } , а объявляем приватный член _model и работаем далее с ним уже
Mr. T хм, да ты прав, я никогда не сравнивал. возможно просто руководство не обновили =) задай вопрос Александру Макарову - он же SamDark. Он один из core-разработчиков Yii, и заодно переводчик документации
Кто еще не читал: Сравнение Yii с Симфони: https://gist.github.com/1408415#file_g Сравнение все фреймворков: https://github.com/Stamm/framework-benchs