【问题标题】:Questions about views关于视图的问题
【发布时间】:2011-03-31 15:37:27
【问题描述】:

我有一些关于在 Codeigniter 中查看的问题。

我如何构建我的设计以及以后如何返回它?我想构建我的页眉、主要内容和菜单、页脚等等。

构建一个设计然后将其复制到我创建的每个新视图中并不是一个好的解决方案。如果我更改页脚中的某些内容,更改将对整个网站生效。

有没有人有任何好的指南链接到如何在视野之外充分利用或在这里以一种好的方式解释。

【问题讨论】:

  • 如果您先搜索该网站,您可能会找到this answer

标签: php codeigniter view


【解决方案1】:

你的感觉是对的,这根本不是一个好主意。这就是为什么大多数人将某种模板系统与他们的视图结合使用。

我曾经使用过这个库:http://williamsconcepts.com/ci/codeigniter/libraries/template/(曾经使用过,因为我不再在 CI 中编写太多代码了)

它从来没有给我带来麻烦,而且设置起来非常容易。

【讨论】:

    【解决方案2】:

    您应该让您的页眉、页脚、菜单等各有自己的视图。这样,当您想更改页脚时,您可以编辑该视图,然后使用该视图的每个控制器都会更新。

    有关多个视图文件的更多信息,请参阅CodeIgniter docs

    【讨论】:

      【解决方案3】:

      这里有两个半选项(假设您不想安装某种插件)。

      在您看来,选项 1 是使用 <?php $this->load->view('header'); ?> 等等。

      选项 2 是在您的控制器中覆盖 output 函数,该函数接受一个参数(页面内容)并从那里操作它(添加视图等)。 选项 2.5 是覆盖基本 CI_Controller 并实现与上述相同的 output 函数的标准覆盖。

      在执行选项 2/2.5 之前检查输出类的文档;回显前需要将输出内容设置为null或空字符串,否则内容会出现两次。

      【讨论】:

        【解决方案4】:

        从控制器中出来

           if($query->result())
        {
            **$data['blog']** = $query->result();
        }
            $data['title'] = 'LemonRose';
            $data['content'] = 'home/home_content'; //this is the content section, a separate view from header and footer
            //$this->output->cache(60);
            **$this->load->view('template1', $data);** 
        }
        

        笔记模板1

        模板 1(这是整个页面)

        $this->load->view('tops/home');
        $this->load->view($content); $content is the $data['content'] from above
        $this->load->view('bottoms/main_home');
        

        然后内容部分 (home/home_content) 将有一个地方来接收 $data[blog]

        foreach (**$blog** as $row){ //controller main
        
        $row->title = ucwords($row->title); //more code goes below
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-05-30
          • 2011-11-23
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多