在sql或codeigniter中如何将值设置为%field_value%?
我有一个名为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']时,它也会获得控制器参数 因此,我无法执行以下代码在我的模型中搜索:在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
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$这个->路由器->类$这个->路由器->方法;