[英]how to get name of dynamically generated method in codeigniter
我已經實現了URL如下
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;
}
一切都很好,但問題是我想返回用戶名以進一步處理,此方法返回參數名而不是用戶名。 請告訴我我在哪里做錯了?
只是提示您在用戶名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才能從網址中刪除index.php。
https://github.com/wolfgang1983/htaccess_for_codeigniter
從馬格納斯·埃里克森評論
CI使用正則表達式替換動態url變量,這意味着$ 1 =第一個匹配項,$ 2 =第二個匹配項,等等。$ -part不是普通的php變量,因此您不能將其命名為你要。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.