對不起,我對你的問題的措辭有點困惑,但我想我明白你在談論什麼。
第一張:閱讀Docs on Controllers。 Codeigniter文檔的岩石。
第二個: URI的路由直接控制器類名稱及其功能。
例如:
<?php
class Profile extends CI_Controller {
function item($username = NULL, $title = NULL)
{
if (is_null($username) || is_null($title)) redirect(base_url());
// blah run code where $username and $title = URI segement
}
}
這將產生此網址:
http://www.example.com/profile/item/username/whatever-i-want
然後你可以在應用程序/配置/ routes.php文件使用路由刪除項目(docs):
$route['(:any)'] = 'profile/item/$1';
雖然更好的方法(預讀):
$route['profile/(:any)'] = 'profile/item/$1';
最後,這將創造你正在尋找的網址:
http://www.example.com/username/whatever-i-want
//http://www.example.com/profile/username/whatever-i-want
我可能需要仔細檢查這個語法錯誤,但它的笨路由是如何工作的基本知識。一旦你的URL設置成這樣,你就可以用JS來做任何你想做的事情。
然而,我強烈反對這種方法,因爲路由一類像這樣將幾乎呈現應用程序/網站無用的其餘部分,除非這是你唯一的控制器/功能(可能並非如此),你有。我認爲只要在這種或那種URL中擁有一個類名就會更好。
或者,如果您想以非常規方式跳過路由,也可以像使用index()和$ this-> uri-> segment()一樣使用。
<?php
class Profile extends CI_Controller {
function index()
{
$username = $this->uri->segment(1);
$title = $this->uri->segement(2);
}
}
希望這是有道理的,並幫助您解決您的問題。
謝謝!我正在使用替代方法。 – adrianmc 2013-05-11 12:29:17
真的很好的答案! – 2015-07-23 14:12:16