我习惯将ID放在URL中以映射到数据库中的项目:
/酒店/ 1
但如果我想获取id为1的酒店名称并将其放入网址并用连字符替换空格怎么办?
/酒店/酒店-比安卡
我正在使用Kohana,并且有路由的概念(它几乎存在于所有MVC框架中),但我似乎无法让它工作
我该怎么做?
答案 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搜索。