将段或子功能/类添加到codeigniter

时间:2013-03-19 12:47:05

标签: codeigniter uri

我有一个控制器,数字,并且在该控制器中,我的一个功能是小部件,然后是小部件的几个公共功能,例如突出显示

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

我希望将网址显示为domain.com/digital/widget/highlights以及breadcrumb(autocrumb)

public function widget()
{
$header["pageTitle"] = "TV Listing Widgets and Snippets";

$this->load->helper('breadcrumb');

$this->load->view('templates/header.php', $header);
$this->load->view('digital/widget');
$this->load->view('templates/modal.php');
$this->load->view('templates/footer.php');
}


public function highlights()
{
$header["pageTitle"] = "TV Highlights Widget";

$this->load->helper('breadcrumb');

$this->load->view('templates/header.php', $header);
$this->load->view('digital/widgets/highlights');
$this->load->view('templates/modal.php');
$this->load->view('templates/footer.php');
}

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

4 个答案:

答案 0 :(得分:0)

不像你在做什么。

CI网址的结构是:

domain.com/controller/function/arg1/arg2/etc...

因此,您希望“突出显示”是传递给窗口小部件的值($ value);然后,在widget函数内部,一些说明

的IF语句
if ($value == 'highlight')
{
    $this->highlight();
}

至少,我认为这就是你要做的事情

答案 1 :(得分:0)

您需要在CI中使用路线:

http://ellislab.com/codeigniter/user-guide/general/routing.html

您可以将/ digital / highlight /映射到/ digital / widget / highlight。

答案 2 :(得分:0)

谢谢!工作了

public function widgets($widget = null) {

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

$this->load->view(  

等等

答案 3 :(得分:0)

You can using URI Routing https://www.codeigniter.com/userguide3/general/routing.html

$routes['digital/widget/highlights'] = 'digital/highlights';

but since you said some other functions too maybe for widget() function

If you want show some other functions inside widget segment, i recommedation you to make new controller Widget.php with written functions that work for Widget in it, then custom it to CI URI Routing maybe like this:

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

hope this helps, sorry for my english.