如何在codeigniter中创建加载菜单的功能

时间:2016-12-06 08:55:47

标签: codeigniter

我对此感到困惑,所以我想制作一个名为 menu_function 的功能。

为了什么?所以视图中的所有文件都会加载 menu_function

这个 menu_function 会在视图中的每个php文件中加载菜单选项,所以它会在视图中的不同php文件中加载不同的菜单选项

我认为是这样的

public function menu_function()
{
    $dataV["menu"] = "<a href='profit' style='color:blue; font-size: 14px; font-weight: bold;'>Profit PT</a>";
    $dataV["menu1"] = "<a href='profit/member' style='color:blue; font-size: 14px; font-weight: bold;'>Profit Member</a>";
    $this->load->view("test", $dataV);
}

我认为在控制器中使用html标签很糟糕,或者我已经阅读this,根据这是有效的我在视图中为菜单选项制作另一个php并在另一个视图中加载?

为什么我要这样做?所以将来如果我想添加另一个菜单选项或删除一个或多个菜单选项只需更改1个文件,没有打开所有视图并删除菜单选项1 .1。

也许是另一个建议?感谢

1 个答案:

答案 0 :(得分:0)

我要做的是在views目录中创建一个templates文件夹,并在那里放置几个控制器可能需要的视图文件。 /应用/视图/模板

我们将该文件命名为 header.php ,它看起来像这样

<a href='<?php echo site_url('profit'); ?>' style='color:blue; font-size: 14px; font-weight: bold;'>Profit PT</a>
<a href='<?php echo site_url('profit/member); ?>' style='color:blue; font-size: 14px; font-weight: bold;'>Profit Member</a>

然后,您可以在您想要的每个控制器中包含此模板

$this->load->view('templates/header');

此外,为了将来参考,如果您希望功能在不同的控制器中可用,您可以:

  1. Extend the CI_Controller core class

    class MY_Controller extends CI_Controller { public function __construct() { parent::__construct(); } /* define here all the functions you want */ }

    然后,无论何时想要调用函数,都可以创建扩展MY_Controller而不是CI_Controller的控制器。

  2. 使用helperslibrariesdrivers