Как сделать чпу для карточки товара?

Для реализации ЧПУ (человеко-понятных унифицированных адресов) для карточки товара в Yii, вам понадобится выполнить несколько шагов.

Шаг 1: Настройка маршрутов в конфигурации приложения

Сначала вам нужно настроить маршруты в файле конфигурации вашего приложения (config/web.php для Yii2, protected/config/main.php для Yii1).

Для Yii2:

 'components' => [
     //...
     'urlManager' => [
         'enablePrettyUrl' => true,
         'showScriptName' => false,
         'rules' => [
             'product/<slug:[w-]+>' => 'product/view',
         ],
     ],
 ],

Для Yii1:

 'components' => [
     //...
     'urlManager' => [
         'urlFormat' => 'path',
         'rules' => [
             'product/<slug:[w-]+>' => 'product/view',
         ],
     ],
 ],

Это настроит маршрут product/<slug> для действия view в контроллере ProductController, где slug - это часть ЧПУ адреса, которую вам нужно получить и передать в метод actionView.

Шаг 2: В контроллере принимайте часть ЧПУ адреса

В вашем контроллере (ProductController.php) вы должны настроить метод actionView, чтобы он принимал параметр slug из ЧПУ адреса. Например, это может выглядеть так в Yii2:

 public function actionView($slug)
 {
     // Здесь ваш код для отображения карточки товара
 }

Шаг 3: Получение данных товара и отображение

В методе actionView вы можете получить данные товара из базы данных или откуда-то еще, используя $slug, указанный в параметрах метода. Затем вы можете отобразить эти данные в вашем представлении (view) с помощью самых разных способов в зависимости от вашей реализации, например, с применением ActiveRecord или просто запроса к базе данных.

Что касается представления, вы можете создать свое представление view.php в каталоге представлений для ProductController, где вы можете использовать данные товара, полученные из базы данных, и отобразить их на странице карточки товара.

Шаг 4: Генерация ЧПУ адреса

Если вы хотите, чтобы ссылки на карточки товаров были генерируемыми (например, в списке товаров), вы должны сгенерировать ЧПУ адрес на основе параметров товара (например, названия товара или уникального идентификатора) и использовать его в ссылке.

Это можно сделать с помощью встроенного в Yii функционала URL-менеджера. В примере ниже предполагается, что у вас есть модель Product с атрибутами id и name:

use yiihelpersUrl;

// Генерация ссылки с ЧПУ адресом товара
$product = Product::findOne($id);
$url = Url::to(['product/view', 'slug' => $product->name], true);

Затем вы можете использовать переменную $url в HTML-шаблоне для отображения ссылки на карточку товара:

<a href="<?= $url ?>">Название товара</a>

Это основные шаги, которые нужно выполнить для реализации ЧПУ для карточки товара в Yii.