簡體   English   中英

如何在codeigniter中獲取動態生成的方法的名稱

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM