我正在使用CodeIgniter从头开始构建用户个人资料部分。会发生什么,用户将输入URL:
www.somesite.com/profile/view/<USERNAME>
(个人资料是文件夹&amp; 视图是控制器)
我会使用IF ELSE语句检查数据库中是否有 $ currentURL (见下文)并加载所需的页面。
但是现在正在发生的事情是它正在寻找一个功能(我认为)来执行 view 。但没有。这导致404错误。
CodeIgniter是否可以忽略该URL的最后一段但仍保留在那里以便我可以使用;
$currentURL = $this->uri->segment(3);
抓住 USERNAME ?
感谢您查看我的问题,
路易斯。
答案 0 :(得分:2)
如果我理解正确的话:
声明您的函数如下
public function view($var1, $username = "") {...}
必须填写$var1
,但可以省略$username
,其默认值为""
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class View extends CI_Controller { //can not belive that View is not reserved word
public function __construct() {
parent::__construct();
}
public function index() {
//index() function can not have parameters
//redirect('view/show');
//if no username is set, do default thing like show list of users
//load view or something
}
public function show($username = "") {
//this function can have parameters
//load views from here
$this->load->view('abc_view');
}
}
在
之后添加到routes.php $route['profile/view/(:any)'] = "profile/view/show/$1";
这将允许您按预期拥有漂亮的网址
site.com/profile/view/Peterson123
注意使用“路由”方法时,redirect(profile/view/show)
index()
_remap()
的另一个方法已解释为here。