Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/112.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
在sql或codeigniter中如何将值设置为%field_value%?_Sql_Codeigniter - Fatal编程技术网

在sql或codeigniter中如何将值设置为%field_value%?

在sql或codeigniter中如何将值设置为%field_value%?,sql,codeigniter,Sql,Codeigniter,我有一个名为uri_table的表,其中包含: id,uri_段 1,/dir_name/bla-bla-1/ 2,/dir_name/bla-bla-2/ 3,/dir_name/bla-bla-3/ 我想得到纯链接,它只包含直到控制器名称和控制器参数不包括在内。但是,当我使用$_SERVER['URI_SEGMENT']时,它也会获得控制器参数 因此,我无法执行以下代码在我的模型中搜索: function check_uri() { $this->db->like('ur

我有一个名为uri_table的表,其中包含:

id,uri_段 1,/dir_name/bla-bla-1/

2,/dir_name/bla-bla-2/

3,/dir_name/bla-bla-3/

我想得到纯链接,它只包含直到控制器名称和控制器参数不包括在内。但是,当我使用$_SERVER['URI_SEGMENT']时,它也会获得控制器参数

因此,我无法执行以下代码在我的模型中搜索:

function check_uri()
{
    $this->db->like('uri_segment',$uri_segment,'after');
    $id = $this->db->get('uri_table')->row_array()['id'];
    return $id;
}
而不是:

function check_uri($request_uri=$_SERVER['URI_SEGMENT'])
{
    //trim controller param that is numeric
    for($i = strlen($request_uri)-1;$i > 0;$i--)
    {
        if(is_numeric($request_uri[$i]) || $request_uri[$i]=='/')
        {
           continue;
        }
        else
        {
            $request_uri =  substr($request_uri,0,$i+1);
            break;
        }
    }
    $this->db->where('uri_segment',$request_uri);
    $id = $this->db->get('uri_table')->row_array()['id'];
    return $id;
}

这是我现在的代码,但是它也可以删除参数,如果$request_uri='/dir_name/bla-bla-3/1/some_param/3'它将返回$id null,那么这个参数就是数字。如何在没有控制器参数的情况下删除参数/get uri,或者如何将$uri_段与uri_段$this->db->like$uri_段“%uri_段%”?

在该存储中创建控制器时,请执行以下操作:

class About extends CI_Controller {
    // MVC config
    var $PANEL = '';
    var $CONTROLLER = 'about';
    var $MODEL = 'mdl_about';
    var $TITLE = 'page title';
    var $LIST_PAGE_NAME = 'aboutus';

    function About() {
        parent::__construct();
        //$this->load->model($this->MODEL, 'model');
    }
    function index() {
        $this->load->view($this->LIST_PAGE_NAME);
    }
}
echo $this->CONTROLLER;
所以上面的控制器、模型、页面标题和视图页面可以在与该控制器相关的任何地方使用

要显示变量值,请如下所示:

class About extends CI_Controller {
    // MVC config
    var $PANEL = '';
    var $CONTROLLER = 'about';
    var $MODEL = 'mdl_about';
    var $TITLE = 'page title';
    var $LIST_PAGE_NAME = 'aboutus';

    function About() {
        parent::__construct();
        //$this->load->model($this->MODEL, 'model');
    }
    function index() {
        $this->load->view($this->LIST_PAGE_NAME);
    }
}
echo $this->CONTROLLER;
或者您可以尝试以下方法:

$this->router->fetch_class(); //for controller
$this->router->fetch_method(); //for method

对不起,解释得很混乱。我只是一个PHP和Codeigniter的初学者,不知道该怎么做。你想从字符串中提取'bla-bla-1'吗?我想提取/dir_name/bla-bla-1而不是/dir_name/bla-bla-1/some_参数。但是在我正在处理的项目中,已经有30多个控制器了。还有其他解决方案吗?你可以访问这里:我有更新了我的答案,你能看看吗。$this->router->directory$这个->路由器->类$这个->路由器->方法;