我习惯于将 id 放在 URL 中以映射到数据库中的项目:
/酒店/1
但是如果我想获取 id 为 1 的酒店名称并将其放在 URL 中并用连字符替换空格怎么办?
/酒店/酒店-比安卡
我正在使用 Kohana,并且有路由的概念(几乎存在于所有 MVC 框架中),但我似乎无法让它工作
我该怎么做呢?
由于我对 kohana 一无所知,因此我将提供一个可能的 PHP 答案。
您能否通过 URL 传递 id 并使用 PHP 请求它,如果您传递酒店的名称,是否与数据库中以酒店名称作为其字段的项目相对应?
为此,我在名为 url 的 db 表中使用特殊字段 :) 因此,例如 /controller/open/urladress 将查找内部带有“urladress”的 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 搜索。