Помощь с контроллерами
Добавлено: 2019.04.17, 21:32
Здравсвуйте.
Вопрос - у меня есть каталог товаров разных категорий.
Каждая из категорий различается и разными артрибутами, внешнтм видом и структурой страницы - т.е. я так понимаю - прийдется формировать вид для каждой отдельной категории и страницы товара этой категории.
В идеале я хочу получить такую структуру:
site.com/products - все категории
site.com/products/category1 - товары категории 1
site.com/products/category2 - товары категории 1
site.com/products/category1/product1 - товар1 категории 1
site.com/products/category1/product2 - товар2 категории 1
Как правильно раскидать это в контроллере (контроллерах):
Т.е. например запрос пришел на site.com/products/category1 - шлю на [catalog/index] (или например на [site/catalog]) а там делаю что-то типа такого?
$category_id = Category::find()->select('id')->one();
if ($category_id == 1) {
return $this->render('category1');
}
elseif ($category_id == 2){
return $this->render('category2');
}
......
В вид передаю уже нужный датаПровайдер и играюсь с страницей уже под конкретную категорию?
Ну тогда при запросе site.com/products/category1/product1 - шлю на [product/index] а там:
$category_id = Category::find()->select('id')->one();
if ($category_id == 1) {
return $this->render('product_category1');
}
elseif ($category_id == 2){
return $this->render('product_category2');
}
......
Но мне не нравится это решение - я уверен, что делаю ошибку. Есть еще какие-то варианты?
Вопрос - у меня есть каталог товаров разных категорий.
Каждая из категорий различается и разными артрибутами, внешнтм видом и структурой страницы - т.е. я так понимаю - прийдется формировать вид для каждой отдельной категории и страницы товара этой категории.
В идеале я хочу получить такую структуру:
site.com/products - все категории
site.com/products/category1 - товары категории 1
site.com/products/category2 - товары категории 1
site.com/products/category1/product1 - товар1 категории 1
site.com/products/category1/product2 - товар2 категории 1
Как правильно раскидать это в контроллере (контроллерах):
Т.е. например запрос пришел на site.com/products/category1 - шлю на [catalog/index] (или например на [site/catalog]) а там делаю что-то типа такого?
$category_id = Category::find()->select('id')->one();
if ($category_id == 1) {
return $this->render('category1');
}
elseif ($category_id == 2){
return $this->render('category2');
}
......
В вид передаю уже нужный датаПровайдер и играюсь с страницей уже под конкретную категорию?
Ну тогда при запросе site.com/products/category1/product1 - шлю на [product/index] а там:
$category_id = Category::find()->select('id')->one();
if ($category_id == 1) {
return $this->render('product_category1');
}
elseif ($category_id == 2){
return $this->render('product_category2');
}
......
Но мне не нравится это решение - я уверен, что делаю ошибку. Есть еще какие-то варианты?