【问题标题】:redundant implementation in CI controllerCI控制器中的冗余实现
【发布时间】:2009-12-21 03:46:27
【问题描述】:

我想问你关于博客首页的最佳做法。 我想使用 CodeIgniter 框架构建博客应用程序。我有 2 种类型的页面(首页和管理页面)

假设我的首页(主页、帖子、页面和链接)中有多个控制器。默认情况下,我包含所有这些控制器的查看器:header.php、footer.php、sidebar.php。

在侧边栏中,我总是显示类别、最近评论、最近帖子、链接和存档。所以..,在我所有的首页控制器中,我必须实现类别选择、最近评论、最近帖子、链接和存档。假设我在所有控制器的构造函数中实现。

__construct () {
//data['categories'] = CategoryModel->getlist
//data['recent_posts] = PostModel->get_recent_post
//etc

你能建议我,我必须把这个方法放在哪里,所以我不能在所有控制器中实现这个方法。

谢谢

【问题讨论】:

    标签: php codeigniter


    【解决方案1】:

    您可以编写一个其他控制器继承自的基本控制器

    class AppStartup extends Controller {
    
        function __construct() {
            // whatever you need
        }
    
    }
    

    然后

    class Home extends AppStartup {
    
        // ....
    
    }
    

    你也可以开始接受一些给你的答案,否则人们不会那么乐意帮助你。

    【讨论】:

      【解决方案2】:

      最好的方法是创建一个 MY_Controller 并使用 $this->data 而不是 $data。这意味着您的所有控制器都将从 MY_Controller 运行(只要您明确告诉您的控制器从它继承)。

      http://codeigniter.com/wiki/MY_Controller_-_how_to_extend_the_CI_Controller/

      【讨论】:

        猜你喜欢
        • 2011-05-10
        • 2023-03-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多