如何在笨的BaseURL后传参数?(How to pass parameter after base

2019-10-31 08:04发布

基本网址: HTTP://本地主机/ F1 /

而我传递参数的URL,如: HTTP://本地主机/ F1 / USER1

我试图打印

function index(){
    echo $this->uri->segment(2);
}

我想打印User1在控制器中。 如何实现这一目标?

Answer 1:

配置您的溃败和补充一点:

$route['Controller_Name/(:any)'] = 'Controller_Name/index/$1';

在这里,你去与你的控制器

class Controller_Name extends CI_Controller {
  function index($prm){
    echo $prm;
  }
}

玩得开心....你可以有你想要多少URI ....



Answer 2:

读到这里https://www.codeigniter.com/userguide3/general/controllers.html - > Passing URI Segments to your methods

/products/shoes/sandals/123

<?php
class Products extends CI_Controller {

        public function shoes($sandals, $id)
        {
                echo $sandals;
                echo $id;
        }
}


Answer 3:

之后base_url segemnts /参数可以得到这样的

确保base_url和URL帮手在设定application/config/config.phpapplication/config/autoload.php文件分别

假设,调用函数与锚标记

<a href="<?= base_url('HomeController/index/'.$url1)?> ">Index</a>

另外,在上述线, HomeController是控制器名称, index函数名和$url1是参数

class HomeController extends CI_Controller {

    public function index($url1){
         echo $url1;
    }
}

此外, $this->uri->segment()都可以使用。



Answer 4:

我从你的问题理解的是,你想不使用你的方法重新映射,直接在控制器后传递参数?

您可以通过用户_remap并检查是否匹配的方法处理它通常还是把它传递给你的直接默认方法,现在你将不再需要使用index在您的网址,你打算。

public function _remap($method)
{
        if ($method === 'some_method_in_your_controller')
        {
                $this->$method();
        }
        else
        {
                $this->index($method);
        }
}

现在让我们说您的网址是这样http://localhost/controller/parameter那么如果这个参数相匹配的方法,它会调用该方法,如果不将它作为参数传递给你index



Answer 5:

定义你的配置控制器/ routes.php.it会默认调用索引功能。

$route['default_controller'] = 'controllername';


Answer 6:

检查是否加载的URL帮手。 只有这样,它会正常工作。 无论是自动加载它或把它的控制器。



文章来源: How to pass parameter after baseurl in codeigniter?