【问题标题】:Building view from model directly In Codeigniter?直接在 Codeigniter 中从模型构建视图?
【发布时间】:2013-05-16 23:54:13
【问题描述】:

我有一个包含类别导航菜单的标题。

这个菜单是由数据库中的数据创建的,我已经创建了一个模型,这是返回该模型中类别列表的函数:

function categories_list()
  {
    $query=$this->db->get("produits_categories");
    if($query->num_rows()>0)
    {
      $i = 0;
      foreach($query->result() as $rows)
      {
        $items[$i] = $rows->title;
        $i++;
      }
      return $items;

问题是我不知道如何使用控制器将数据传递给标题视图,因为标题视图被其他控制器调用。

例如,我有一个客户端控制器,它加载页眉视图、客户端视图和页脚视图,所以如果我需要传递数据,我必须调用类别控制器并将数据传递给每个使用页面的页眉视图标题。

没有其他方法可以直接传数据查看吗?

【问题讨论】:

    标签: php


    【解决方案1】:

    当控制器应用视图时,它可以pass parameters(请参阅向视图添加动态数据部分大约一半)。这是在某种程度上采取的正确方法。

    从哲学上讲,菜单可能完全独立于正在显示的页面。在这种情况下,视图检索其数据而不是让控制器每次都这样做可能是可以接受的。

    【讨论】:

    • 我的意思是类别菜单总是有相同的代码,如果我使用控制器传递数据,我每次想显示标题时都必须调用这个控制器,我想在用于检索数据并在不调用控制器的情况下使用 foreach 循环显示数据的标头代码
    • @AzerRtyu:您的措辞表明您可能不了解控制器的角色。 controller 由页面加载激活,通常调用模型和视图。视图调用控制器是不寻常的,而且非常值得怀疑。
    【解决方案2】:

    关于您的部分问题,可以将数据直接传递给视图,如下所示:

    $data = 'Some Data You Create';
    $this->load->view('view_in_question', $data);
    

    这是将数据传递给视图的标准语法,这通常在 codeigniter 中很容易做到。以下是用户指南中更详细介绍的部分:

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

    【讨论】:

      猜你喜欢
      • 2019-02-03
      • 2011-02-28
      • 2021-07-27
      • 2011-08-14
      • 2016-02-27
      • 1970-01-01
      • 1970-01-01
      • 2011-10-12
      • 1970-01-01
      相关资源
      最近更新 更多