URL с названием элемента - PullRequest
       4

URL с названием элемента

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

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

/ отели / 1

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

/ отели / Отель-Бьянка

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

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

Ответы [ 3 ]

1 голос
/ 29 октября 2009

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

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

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

В контроллере вы можете искать имя в базе данных. Я привык к 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
}

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

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

Для этого я использую специальное поле в таблице БД с именем url :) Так, например, / controller / open / urladress будет искать поле URL с «urladress» внутри для открытия Я не думаю, что вы можете изменить URI на лету)

...