Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
dony
Сообщения: 183 Зарегистрирован: 2012.05.26, 16:50
Сообщение
dony » 2013.04.16, 23:13
htaccess добавил. спасибо за подсказку. забыл про него. но все равно не работает правильно. вот смотрите (я чуть чуть изменил) правильно ли написано условие для этой ссылки
http://news.loc/news/show/17?slug=hgj
Код: Выделить всё
'urlManager' => array(
'urlFormat' => 'path',
'showScriptName'=>false,
'rules' => array(
'news/show/<id:\d+>-<slug:[a-z0-9-]+>' => 'show/view',
'<controller:\w+>/<id:\d+>' => '<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
'<controller:\w+>/<action:\w+>' => '<controller>/<action>',
),
),
Последний раз редактировалось
dony 2013.04.17, 00:13, всего редактировалось 1 раз.
rak
Сообщения: 2181 Зарегистрирован: 2010.11.02, 23:40
Контактная информация:
Сообщение
rak » 2013.04.16, 23:16
правильно, а как урл генерируется?
dony
Сообщения: 183 Зарегистрирован: 2012.05.26, 16:50
Сообщение
dony » 2013.04.16, 23:32
Последний раз редактировалось
dony 2013.04.16, 23:48, всего редактировалось 2 раза.
rak
Сообщения: 2181 Зарегистрирован: 2010.11.02, 23:40
Контактная информация:
Сообщение
rak » 2013.04.16, 23:47
я имею ввиду код, который генерирует эту ссылку
dony
Сообщения: 183 Зарегистрирован: 2012.05.26, 16:50
Сообщение
dony » 2013.04.16, 23:50
rak писал(а): я имею ввиду код, который генерирует эту ссылку
Экшн
Код: Выделить всё
public function actionShow($id,$slug) {
$news = News::model()->find('slug = :slug AND id = :id', array(':slug' => $slug, ':id'=>$id));
$this->render('view', array('model' => $news));
}
Линк
Код: Выделить всё
CHtml::link(CHtml::encode($data->title), array('show', 'slug'=>$data->slug, 'id'=>$data->id))
rak
Сообщения: 2181 Зарегистрирован: 2010.11.02, 23:40
Контактная информация:
Сообщение
rak » 2013.04.16, 23:54
ну дык вместо show нужно писать /controller/action
т.е. /show/view или типа того
Код: Выделить всё
CHtml::link(CHtml::encode($data->title), array('/show/view', 'slug'=>$data->slug, 'id'=>$data->id))
dony
Сообщения: 183 Зарегистрирован: 2012.05.26, 16:50
Сообщение
dony » 2013.04.17, 00:39
На локале не заработало, а на сервере заработало)) А ещё вопрос, после того как я прописал
Код: Выделить всё
CHtml::link(CHtml::encode($data->title), array('/show/view', 'slug'=>$data->slug, 'id'=>$data->id))
вместо
Код: Выделить всё
CHtml::link(CHtml::encode($data->title), array('show', 'slug'=>$data->slug, 'id'=>$data->id))
появилась ошибка
как это исправить?
flashimage
Сообщения: 1517 Зарегистрирован: 2011.01.23, 12:43
Сообщение
flashimage » 2013.04.17, 00:58
Правило надо сделать по другому
'news/show/<id:\d+>-<slug:[a-z0-9-]+>' => 'news/show',
и соответственно ссылки формировать с news/show. (если у тебя контроллер news а экшен actionShow)
Бранчи это гомеоморфические эндофункторы, которые мапятся на субманифолды пространства Гилберта.
NESTA13
Сообщения: 8 Зарегистрирован: 2017.06.08, 14:26
Сообщение
NESTA13 » 2017.06.27, 00:22
Так как метод beforeSave говорит сам за себя, - данные начинают записываться, ещё до получения id вставленной записи, то подойдёт вполне такой вариант:
Код: Выделить всё
$this::find()->max('id') + 1; //получим id той записи, которая создастся.
Александр