簡體   English   中英

使用CodeIgniter將多個URL段轉換為索引函數

[英]Mutliple URL Segments to Index Function With CodeIgniter

如果這是一個令人難以置信的愚蠢問題,請原諒我,因為我是CodeIgniter的新手。

我的驗證系統有一個名為Verify的控制器。 我希望能夠使用像site.com/verify/123/abcd這樣的東西,但我只想使用索引功能,因此兩個URL段都需要轉到它。

我確信這可以通過URL路由以某種方式完成,但我無法弄清楚如何將兩個URL段傳遞給Verify的索引函數。

routes.php中的這樣的東西應該做的工作:

$ route ['verify /(:any)/(:any)'] =“verify / index / $ 1 / $ 2”;

我很確定你可以在CodeIgniter多個參數中傳遞任何控制器方法,而無需修改路由或.htaccess,除非我誤解了這個問題。

function index($arg_one, $arg_two)
{

}

$ arg_one表示123和$ arg_two表示示例URI中的abcd。

您將需要編輯路由或編寫htaccess規則,但是我不明白為什么要限制索引函數。

如果您因某些原因不想使用路線,那么您可以將此功能添加到相關控制器中。

public function _remap($method_in, $params = array()) {
    $method = 'process_'.$method_in;
    if (method_exists($this, $method)) {
        return call_user_func_array(array($this, $method), $params);
    }
    array_unshift($params, $method_in);
    $this->index($params);
}

基本上它與CI中的默認行為相同,除了不在“無法查找方法”上發送404,它會向索引發送未完成的方法調用。

您需要更改索引函數以將數組作為第一個參數。 或者,如果您知道自己只需要2個參數,則可以將最后2行更改為

$this->index($method_in, $params[0]);

當然,有些人使用與控制器中的方法相同的參數,兩個解決方案都失敗了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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