Задать вопрос
@abrakadana

Вложенные страницы Yii2?

Всем привет. Делаю небольшой бложик на Yii2. Уже давно пытаюсь сделать вложенные страницы. Не получается.
Вот что у меня есть:

urlManager роутер:

'page/<url:[\w_\/-]+>' => 'page/view',

Контроллер:

public function actionView($url)
{
	$explode = explode('/',$url);


	$post = Page::find()
		->with(['page'])
		->where([
			'page.url' => $url,
		])
		->one();
	if (!$post) {
		throw new NotFoundHttpException(Yii::t('page', 'The requested article does not exist.'));
	}
	return $this->render('view', [
		'post' => $post,
	]);
}


Таблица:

page
id
name
parent_id
url

Хочу чтобы страницы открывалась по адресам:
page/privet/
page/privet/toster
page/privet/toster/vopros-yii

Непонятны два момента:
1) Как обрабатывать это в urlManager. Пробовал сделать так:

'page/<url:\w+>' 	=> 'page/view',
'page/<url>/<url2:\w+>' 	=> 'page/view',
'page/<url>/<url2>/<url3:\w+>' 	=> 'page/view',


Потом вот так:

<code>'page/<url:[\w_\/-]+>' 					=> 'page/view',</code>

Получал всю строку и затем делал в контроллере explode.

2) Как составить запрос в контроллере, чтобы выводить страницу? например, page/privet/toster/vopros-yii. как составить запрос по parent_id и url?
Заранее благодарю.
  • Вопрос задан
  • 1140 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
EnChikiben
@EnChikiben
Доброе время суток! Вам надо свой обработчик написать: www.yiiframework.com/doc-2.0/guide-runtime-routing.html тут в самом конце есть пример класса обработчика.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы