Вопрос

Я привык указывать идентификаторы в URL-адресе для сопоставления с элементом в базе данных:

/отели/1

но что, если я хочу получить название отеля с идентификатором 1 и поместить его в URL и заменить пробелы дефисами?

/отели/отель-bianca

Я использую Kohana, и существует концепция маршрутизации (которая в значительной степени присутствует во всех фреймворках MVC), но, похоже, я не могу заставить ее работать

Как мне это сделать?

Это было полезно?

Решение

Поскольку я ничего не знаю о kohana, я собираюсь представить возможный PHP-ответ.

Не могли бы вы передать идентификатор через URL и запросить его с помощью PHP, и если вы передаете название отеля, чтобы оно соответствовало элементу в базе данных с названием отеля в качестве его поля?

Другие советы

Для этой цели я использую специальное поле в таблице базы данных с именем url :) Так, например, / controller/open/urladress будет искать поле url с 'urladress' внутри, чтобы открыть : D Я не думаю, что вы можете изменить uri на лету)

В контроллере вы могли бы выполнить поиск по имени в базе данных.Я привык к Kohana 2.3.4 с ORM, так что вот как я бы это сделал:

// first you need to replace all hyphens with spaces
$name = str_replace('-', ' ', $parameter);

// search your db for the hotel by name
$hotel = ORM::factory('hotel')->where('name', $name)->find();

// check to make sure it is loaded
if ( ! $hotel->loaded)
{
    // Do something i.e. 404 page or let them know it wasn't found
}

Это позволило бы вам указать по имени.Вы также могли бы добавить проверку, был ли параметр целым числом или нет, и выполнить поиск по идентификатору, если это было так.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top