Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.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 某些情况下未自动添加CI索引方法/功能?_Php_Codeigniter_Routes - Fatal编程技术网

Php 某些情况下未自动添加CI索引方法/功能?

Php 某些情况下未自动添加CI索引方法/功能?,php,codeigniter,routes,Php,Codeigniter,Routes,如果我们在codeigniter中给出一个方法/函数的名称index,我们就可以不调用它而转到该方法(因此我们只需要使用它的控制器名称) 这是因为我们在config.php中指定了它(或者CI默认指定了它): $config['index_page'] = 'index.php'; 因此,当我使用一些库时,比如表单验证,我不需要指定索引方法。但是,当我尝试使用分页类时,出现了一个问题 我需要在代码中指定索引方法,或者分页不起作用(如果单击下一个分页索引,则会出现404错误): 因此,我必须使用

如果我们在codeigniter中给出一个方法/函数的名称
index
,我们就可以不调用它而转到该方法(因此我们只需要使用它的
控制器
名称)

这是因为我们在
config.php
中指定了它(或者CI默认指定了它):

$config['index_page'] = 'index.php';
因此,当我使用一些
时,比如
表单验证
,我不需要指定索引方法。但是,当我尝试使用
分页
类时,出现了一个问题

我需要在代码中指定
索引
方法,或者
分页
不起作用(如果单击下一个分页索引,则会出现404错误):

因此,我必须使用:

$config['base_url'] = site_url('/backend_umat/index');
而且
分页
工作得很好

请问,有人能给我一个解释一下发生了什么事吗?我的问题已经解决了,但我对这里发生的事情很好奇


谢谢:D

这是因为当您在控制器名称CodeIgniter之后有一些东西无法区分时,它是索引方法的一个参数,因此假定它是一个方法。当导航到下一页时,某个附加到URL的内容,如果基本URL中没有方法名称,则它将尝试从附加的URL获取方法名称。

这是因为当控制器名称CodeIgniter之后有某个内容无法区分时,它是索引方法的参数,因此假定它是一个方法。当导航到下一页时,某个附加到URL的内容,如果基本URL中没有方法名称,它将尝试从附加的URL获取方法名称。

您可以将所有
后端\u umat/
路由到
索引

$routes['backend_umat/(:any)'] = 'backend_umat/index/$1';
或者仅当方法名称为空时,为NULL

$routes['backend_umat/(^[\s]*$)'] = 'backend_umat/index/$1';

// or JUSt

$routes['backend_umat/(^[\s]*$)'] = 'backend_umat/index';

您可以在
config/routes.php中添加
路由
配置

您可以将所有
后端\u umat/
路由到
索引

$routes['backend_umat/(:any)'] = 'backend_umat/index/$1';
或者仅当方法名称为空时,为NULL

$routes['backend_umat/(^[\s]*$)'] = 'backend_umat/index/$1';

// or JUSt

$routes['backend_umat/(^[\s]*$)'] = 'backend_umat/index';

您可以在codeigniter分页的
config/routes.php
中添加
routes
配置:

  • $config['base\u url']
    应该是完整的url。i、 例如,
    base\u url()/{CONTROLLER}/{FUNCTION}

  • 因此,如果您没有给出完整的路径,分页类将忽略{FUNCTION},并将创建如下链接:
base_url()/{CONTROLLER}/{PAGE1},base_url()/{CONTROLLER}/{PAGE2},
基本url()/{CONTROLLER}/{PAGE3}
等等。。。而不是
base_url()/{CONTROLLER}/{FUNCTION}/{PAGE_NO}


现在,在函数的位置上有一个数字(页码),它不在控制器类中,但被假定为控制器中的函数。这就是您得到404页面未找到错误的原因。
有两种方法可以解决这个问题。

  • 你做这件事的方式<代码>$config['base_url']=site_url('/backend_umat/index')
  • 使用路线
    routing.php文件中定义:
    $route['backend\u umat/(:num)]='backend\u umat/index/(:num)'
    
    在您的控制器中
    $config['uri_segment']=2
    如果您在代码中使用了:
    $this->uri->segment(3)
    ,则将其设置为
    $this->uri->segment(2)

    那就行了

  • 在codeigniter中分页:

    • $config['base\u url']
      应该是完整的url。i、 例如,
      base\u url()/{CONTROLLER}/{FUNCTION}

    • 因此,如果您没有给出完整的路径,分页类将忽略{FUNCTION},并将创建如下链接:
    base_url()/{CONTROLLER}/{PAGE1},base_url()/{CONTROLLER}/{PAGE2},
    基本url()/{CONTROLLER}/{PAGE3}
    等等。。。而不是
    base_url()/{CONTROLLER}/{FUNCTION}/{PAGE_NO}


    现在,在函数的位置上有一个数字(页码),它不在控制器类中,但被假定为控制器中的函数。这就是您得到404页面未找到错误的原因。
    有两种方法可以解决这个问题。

  • 你做这件事的方式<代码>$config['base_url']=site_url('/backend_umat/index')
  • 使用路线
    routing.php文件中定义:
    $route['backend\u umat/(:num)]='backend\u umat/index/(:num)'
    
    在您的控制器中
    $config['uri_segment']=2
    如果您在代码中使用了:
    $this->uri->segment(3)
    ,则将其设置为
    $this->uri->segment(2)

    那就行了

  • 你是否使用了这个
    $config['uri_segment']=3用于分页???@elavarasanley yes:DDid您是否使用此
    $config['uri_segment']=3用于分页???@elavarasanley是:感谢您的简明解释:感谢您的简明解释:D