0

我习惯于将 id 放在 URL 中以映射到数据库中的项目:

/酒店/1

但是如果我想获取 id 为 1 的酒店名称并将其放在 URL 中并用连字符替换空格怎么办?

/酒店/酒店-比安卡

我正在使用 Kohana,并且有路由的概念(几乎存在于所有 MVC 框架中),但我似乎无法让它工作

我该怎么做呢?

4

3 回答 3

1

由于我对 kohana 一无所知,因此我将提供一个可能的 PHP 答案。

您能否通过 URL 传递 id 并使用 PHP 请求它,如果您传递酒店的名称,是否与数据库中以酒店名称作为其字段的项目相对应?

于 2009-10-29T06:36:48.183 回答
0

为此,我在名为 url 的 db 表中使用特殊字段 :) 因此,例如 /controller/open/urladress 将查找内部带有“urladress”的 url 字段以打开 :D 我认为您不能即时更改 uri)

于 2009-10-29T14:23:59.303 回答
0

在控制器中,您可以在数据库中搜索名称。我习惯于使用 ORM 的 Kohana 2.3.4,所以我会这样做:

// 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
}

这将允许您按名称指定。您还可以添加检查以查看参数是否为整数,如果是则按 id 搜索。

于 2009-10-31T17:46:16.057 回答