CodeIgniter - Как переписать URL с помощью параметров URL - PullRequest
2 голосов
/ 13 октября 2009

Мне нужно включить URL-адреса, например:

/catalog/products/24

в более чистые URL, такие как:

/catalog/product-name-here

Я использую CodeIgniter, и механизм перезаписи включен и настроен. Я также настроил перезапись в файле routes.php следующим образом:

$route['catalog/products/(:any)'] = 'catalog/view/$1';

Вопрос : Где заменить идентификатор продукта /24 на /product-name-here? Я могу успешно получить параметр $1 и получить название продукта. Я не могу понять, как переписать URL с этим динамическим значением, хотя. Заранее спасибо!

Ответы [ 2 ]

2 голосов
/ 13 октября 2009

Я не пользователь codeigniter, но я чувствую, что переписывание URL - не лучшее место для достижения этой цели.

Вам все еще нужно написать метод контроллера, который может идентифицировать продукт, используя что-то вроде slug = 'product-name-here' вместо id = 24.

0 голосов
/ 20 октября 2009

Просто сохраните имя продукта в виде URL-адреса в строке вашего продукта в таблице базы данных. Хорошая практика для этого - метод url_title() из URL Helper .

Тогда вам просто нужно искать слизняк из вашей базы данных в вашем коде, а не идентификатор.

Так что это всего лишь подсказка, потому что у меня сейчас нет времени. Но если у вас есть вопросы, задавайте их здесь, я вернусь, чтобы ответить на них.

И извините за мой плохой английский! :)

...