如果没有参数,代码点火器索引方法返回 GET 参数的"index"?



我有这部分代码:

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Blog extends CI_Controller {
function _remap($page){
$this->index($page);
}
public function index($page = '1')
{
var_dump($page); exit;
}
}

当我点击domain/index.php/blog,var_dump返回我string(5) "index"当我点击domain/index.php/blog/2时,它会返回我 2,哪个是正确的?但是为什么?我有默认参数$page = '1'

当您点击domain/index.php/blog/2时,这意味着您正在调用博客控制器的默认方法索引并将 2 作为参数传递。在这种情况下,它将替换默认参数$page = '1'2。

当您点击domain/index.php/blog时,将在没有任何参数的情况下调用索引函数,它将$page为 1。

更新的答案(根据评论(

如果控制器包含名为 _remap(( 的方法,则无论 URI 包含什么,都将始终调用该方法。它覆盖 URI 确定调用哪个方法的正常行为,允许您定义自己的方法路由规则。

文档链接

使用以下代码它将解决您的问题。

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Blog extends CI_Controller {
function _remap($page){
if($page=='index'){
$this->index($page = 1);
}
$this->index($page);        
}
public function index($page = 1)
{       
var_dump($page); exit;
}
}

相关内容

  • 没有找到相关文章

最新更新