Всем привет. Делаю небольшой бложик на 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?
Заранее благодарю.