带项目标题的网址

时间:2009-10-29 06:33:38

标签: php kohana

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

/酒店/ 1

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

/酒店/酒店-比安卡

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

我该怎么做?

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

为此我在db表中使用名为url的特殊字段:) 所以例如/ controller / open / urladress会查找url字段,里面有'urladress'打开:D 我不认为你可以在飞行中改变uri)

答案 2 :(得分: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搜索。