olegtytarenko2
@olegtytarenko2
разработываю саты на cms PHP. Сейчас практикую yii

Routing and URL Creation как разобраться?

Не могу разобраться как правильно создать адрес страницы. В доке читал но не могу понять логику работы.

Нужно создать www.exemple.com/category_id
Где category_id = alies - где имя его хранится в базе

Как мне прописать в контроллере и дать понять что нужно в алиес страницы поставить category_id ?

P.s. заранее спасибо за помощь
  • Вопрос задан
  • 2322 просмотра
Решения вопроса 1
SamDark
@SamDark
Yii2 core team
Для начала чуть теории:

1. Внутри фреймворка путь представляется внутренним маршрутом: controller/action + массив параметров.
2. Фреймворк строит URL и разбирает URL на основе правил URLManager.
3. Правило задаёт связь шаблон URL → внутренний маршрут.

Теперь посмотрим, что у нас.

1. Допустим, у нас посты. У постов есть category_id.
2. Выводит их список PostController::actionCategory.
3. Параметр, который паредаётся — category_id.

Начнём с контроллера:

class PostController extends Controller
{
    public function actionCategory($category_id)
    {
         $posts = Post::find()->where(['category_id' => $category_id])->all();
         return $this->render('category', ['posts' => $posts]);
    }
}


Далее прописываем следующее правило в конфиг в components → urlManager → rules:

'<category_id>' => 'post/category',

Создать URL на это дело можно так:

echo Url::to(['post/category', 'category_id' => 42]);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы