Php 带有项目标题的URL

Php 带有项目标题的URL,php,kohana,Php,Kohana,我习惯于将id放在URL中以映射到数据库中的项目: /酒店/1 但是,如果我想得到id为1的酒店名称,并将其放在URL中,然后用连字符替换空格,该怎么办 /比安卡酒店 我使用的是Kohana,其中有路由的概念(在所有MVC框架中都有),但我似乎无法让它工作 我该怎么做呢?因为我对kohana一无所知,所以我将给出一个可能的PHP答案 您能通过URL传递id并用PHP请求它吗?如果您传递的是酒店的名称,请将其与数据库中的项目对应,并将酒店名称作为其字段?为此,我使用数据库表中名为URL的特殊字段:

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

/酒店/1

但是,如果我想得到id为1的酒店名称,并将其放在URL中,然后用连字符替换空格,该怎么办

/比安卡酒店

我使用的是Kohana,其中有路由的概念(在所有MVC框架中都有),但我似乎无法让它工作


我该怎么做呢?

因为我对kohana一无所知,所以我将给出一个可能的PHP答案


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

为此,我使用数据库表中名为URL的特殊字段:) 因此,例如/controller/open/urladdress将查找内部带有“urladdress”的url字段以打开:D
我认为您不能动态更改uri)

在控制器中,您可以在数据库中搜索名称。我已经习惯了使用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进行搜索