我有一个CodeIgniter网站,内页的链接结构如下所示:
http://www.example.com/pages/Campus-Tour/18/3
页面是我的控制器名称,校园游览,18 和 3 是传递到 Index 方法的值。
我想制作一个漂亮的网址,所以我可以在路由中使用这样的东西吗.php?
$route['campus-life/campus-tour'] = 'pages/Campus-Tour/18/3';
以显示此网址"http://www.example.com/campus-life/campus-tour">
请使用此语法进行路由。
$route['string-that-you-want-to-show-in-url'] = 'controller/function/arg1/arg2';
例--
$route['campus-life/campus-tour'] = 'pages/campus_tour/$1/$2';
注意:- PHP 不支持函数名称中的连字符(-(,您的函数名称(Campus-Tour(无效,请检查并使用上述语法。
仅供参考:有效的函数名称以字母或下划线开头,后跟任意数量的字母、数字或下划线。
如果您使用此数据 URL 来pages/Campus-Tour/18/3
此campus-life/campus-tour
则它显然缺少您的 URL 参数,如您所见。
您可以做的是<form>
提交POST
,在函数中,您可以捕获这些内容。
在视图中
<form action ="campus-life/campus-tour" method ="post">
<input type="hidden" name="first_param" value = "18"/>
<input type="hidden" name="second_param" value = "3"/>
<input type="submit"> # make this a No button. Should looks like <a> tag. Use CSS. (check Link)
</form>
在控制器中
function Name() #add valid function/controller name
{
# catch the POST values
}
参考:如何使按钮看起来像链接?
以下是路由的语法。请使用这个:
$route['pages/Campus-Tour/(:any)/(:any)'] = 'pages/campus-tour/$1/$2';