Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.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
向codeigniter添加段或子函数/类_Codeigniter_Uri - Fatal编程技术网

向codeigniter添加段或子函数/类

向codeigniter添加段或子函数/类,codeigniter,uri,Codeigniter,Uri,我有一个控制器,digital,在该控制器中,我的一个功能是widget,然后是widget的几个公共功能,例如突出显示 视图设置为digital/widgets/highlights.php 我希望url显示为domain.com/digital/widget/highlights以及面包屑(autocrumb) 是否可以创建一个子类或函数或类似的东西?与您所做的不同 CI URL的结构为: domain.com/controller/function/arg1/arg2/etc... 所以

我有一个控制器,digital,在该控制器中,我的一个功能是widget,然后是widget的几个公共功能,例如突出显示

视图设置为digital/widgets/highlights.php

我希望url显示为domain.com/digital/widget/highlights以及面包屑(autocrumb)


是否可以创建一个子类或函数或类似的东西?

与您所做的不同

CI URL的结构为:

domain.com/controller/function/arg1/arg2/etc...
所以,您希望“highlight”是传递到小部件中的一个值($value);然后,在小部件函数中,一些IF语句

if ($value == 'highlight')
{
    $this->highlight();
}

至少,我认为这是您正在尝试做的

您需要在CI中使用路由:

您可以映射/digital/highlights/to/digital/widget/highlights。

谢谢!解决了

public function widgets($widget = null) {

switch($widget) {
case 'highlights':
$this->highlights();
break;
default:
$widget = "widgets";

$this->load->view(  

etc etc

您可以使用URI路由

但既然你也说了一些其他函数,那么widget()函数也可能是

如果您想在widget段中显示一些其他函数,我建议您制作一个新的controller widget.php,其中包含适用于widget的编写函数,然后将其自定义为CI URI路由,可能如下所示:

$route['digital/widget/(:any)'] = 'digital/widget/$1';
希望这有帮助,对不起我的英语

$routes['digital/widget/highlights'] = 'digital/highlights';
$route['digital/widget/(:any)'] = 'digital/widget/$1';