Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何让CodeIgniter忽略输入URL的最后一段,但仍然保留它?_Php_Codeigniter_Codeigniter Routing - Fatal编程技术网

Php 如何让CodeIgniter忽略输入URL的最后一段,但仍然保留它?

Php 如何让CodeIgniter忽略输入URL的最后一段,但仍然保留它?,php,codeigniter,codeigniter-routing,Php,Codeigniter,Codeigniter Routing,我正在使用CodeIgniter从头开始构建一个用户配置文件部分。发生的情况是,用户将输入URL: www.somesite.com/profile/view/<USERNAME> 要获取用户名 谢谢你看我的问题 刘易斯。如果我理解正确: 声明你的函数如下 公共函数视图($var1,$username=”“){…} 其中必须填写$var1,但可以输入$username,其默认值为“” CI只使用您告诉它的内容,通过一个长URL,您可以选择所需的URI段。你可以制作精美的URL,只

我正在使用CodeIgniter从头开始构建一个用户配置文件部分。发生的情况是,用户将输入URL:

www.somesite.com/profile/view/<USERNAME>
要获取用户名

谢谢你看我的问题


刘易斯。

如果我理解正确:

声明你的函数如下

公共函数视图($var1,$username=”“){…}

其中必须填写
$var1
,但可以输入
$username
,其默认值为
“”



CI只使用您告诉它的内容,通过一个长URL,您可以选择所需的URI段。你可以制作精美的URL,只使用一半的数据,而忽略其余的数据(例如:
/view/(postid)/(postitle)
)@EHU Lewis你得到了404吗?@Jakub我认为OP无法通过404错误,这意味着他调用的是一个没有参数的控制器。这很奇怪,因为OPs站点结构
www.somesite.com/profile/view/
我假设
profile
是文件夹,
view
是控制器。因此,他缺少view controller中的每个“”方法(404错误)。@Jakub OP正在寻找_remap(),因为他说他得到的是404。@EHU Lewis请注意,
index()
方法不能有参数,请参阅我的编辑和链接答案。因此,无论您在
index()
中拥有什么,都将其移动到新创建的函数
show()
,并从该函数访问所有内容。@EHU Lewis,每当您通过
site.com/profile/view/
index()
方法(函数)访问控制器时,都会首先或立即调用,不幸的是
index()
不接受任何参数(我们正在讨论)。因此,您需要做的是,无论何时调用
site.com/profile/view
,都可以将其重定向到
site.com/profile/view/show
,其中
show()
函数可以获取参数(比如
$username
例如
site.com/profile/view/show/pete123
),或者让routes.php处理它。问题是,无论什么时候没有,你都必须明确地处理它。@EHU Lewis,我又做了一次编辑!请让自己考虑一下在调用视图时不带参数会发生什么。
$currentURL = $this->uri->segment(3);
<?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');
    }
}