如何在codeigniter

时间:2017-08-20 06:05:57

标签: php codeigniter url username

我已达到以下网址

  

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;
    }

一切都很好,但问题是我想返回用户名进一步处理,此方法返回参数名称而不是用户名。请告诉我我在哪里做错了?

1 个答案:

答案 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;将它命名为你想要的。