【问题标题】:how to create function for load menu in codeigniter如何在codeigniter中为加载菜单创建功能
【发布时间】:2016-12-06 08:55:46
【问题描述】:

我对此有点困惑,所以我想做一个名为 menu_function 的函数。

为了什么?所以视图中的所有文件 php,都会加载这个 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。

也许还有其他建议?谢谢

【问题讨论】:

    标签: codeigniter


    【解决方案1】:

    我要做的是在视图目录中创建一个模板文件夹,并将您可能需要来自多个控制器的视图文件放在那里。 /应用程序/视图/模板

    让我们将该文件命名为 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

    【讨论】:

    • 谢谢,所以它就像我提供的链接,但如何以不同的方式使用它。谢谢我现在想通了
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-30
    • 1970-01-01
    • 2016-09-02
    • 1970-01-01
    相关资源
    最近更新 更多