我已达到以下网址
myapp.com/profile/username1
myapp.com/profile/username2
myapp.com/profile/username3
我的routes.php文件包含以下代码行
$route['profile/(:any)'] = 'profile/user_profile/$profile_method';
我的profile
控制器包含此代码
public function user_profile($profile_method)
{
echo $profile_method;
}
一切都很好,但问题是我想返回用户名进一步处理,此方法返回参数名称而不是用户名。请告诉我我在哪里做错了?
答案 0 :(得分:3)
提示您在用户名myapp.com/profile/username/1
之后没有/
尝试
$route['profile/(:any)'] = 'profile/user_profile/$1';
$route['profile/(:any)/(:num)'] = 'profile/user_profile/$1/$2';
而不是
$route['profile/(:any)'] = 'profile/user_profile/$profile_method';
http://www.codeigniter.com/user_guide/general/routing.html#examples
然后
public function user_profile($profile_method = '', $id = '')
{
echo $profile_method . ' <br/> ' . $id;
}
确保您已将控制器和其他文件命名为正确,其中只有类的第一个字母和文件名大写为Profile.php
你可能需要在主目录中有一个htaccess来从url中删除index.php。
https://github.com/wolfgang1983/htaccess_for_codeigniter
来自Magnus Eriksson评论
CI使用正则表达式替换动态url变量,这意味着$ 1 =第一个匹配,$ 2 =第二个匹配等。$ -part不是普通的php变量,所以你可以&# 39;将它命名为你想要的。