【问题标题】:Is there anything like MasterPages on CodeIgniter Framework?CodeIgniter 框架中是否有类似 Master Pages 的东西?
【发布时间】:2010-07-08 03:33:31
【问题描述】:

我是 Code Igniter 的新手,我想知道在 .NET 上是否有类似 MasterPages 的功能。

我还想知道我应该将我的公共文件保存在哪里,例如脚本、样式和图像。

您好,在此先感谢您

【问题讨论】:

    标签: php codeigniter master-pages


    【解决方案1】:

    主视图未内置到框架中。要获得类似的效果,您可以加载子视图并将其传递给主视图。

    控制器:

    class Items extends Controller
    {
        function show($id)
        {
            $item = $this->item_model->get_item($id);
    
            // Load the subview
            $content = $this->load->view('item/show', array('item' => $item), true);
    
            // Pass to the master view
            $this->load->view('master_view', array('content' => $content));
        }
    }
    

    主视图:

    <div id="header">
    </div>
    <div id="content">
        <?php echo $content; ?>
    </div>
    <div id="footer">
    </div>
    

    为了回答您的其他问题,我将所有 Javascript 脚本和 CSS 保存在项目根目录中的目录中。

    【讨论】:

    • 这正是我想要的,非常感谢:)
    【解决方案2】:

    我不确定他们是否有与母版页完全一样的东西。 CodeIgniter 更像是一个 MVC 框架,使用视图和控件来构建页面。如果您是 CodeIgniter 的新手,net.TutsPlus 有一个非常好的series of videos,它深入探讨了如何将框架用于不同的场景。查看“Catch Up”部分下的视频列表。

    希望这对您的项目有所帮助并祝您好运。

    【讨论】:

      【解决方案3】:
      【解决方案4】:

      我对 .NET 或 CodeIgniter 不太熟悉,但明智地使用 Views 似乎可以提供相同的功能。该页面上的第一句话说:

      事实上,如果您需要这种类型的层次结构,视图可以灵活地嵌入到其他视图中(在其他视图中等)。

      这似乎正是 MasterPage 所提供的。事实上,大多数 PHP 框架和模板系统都提供了相同的功能。

      在回答您的第二个问题时,您可能希望将脚本、样式和图像保存在 Web 根目录之外的单独文件夹中。我相信 URL 是相对于 index.php 的,因此将您的资源放在附近会使它们更容易在您的视图中引用。另一种选择是查看Asset Helper

      【讨论】:

      • 现在我正在使用视图功能,但我想知道是否有什么东西可以更智能、更简单的方式真正解决问题。
      • 我承认我对 MasterPages 的第一件事一无所知,因此不得不查找它们。不过,从我读过的内容来看,似乎每个内容页面都需要引用它的 MasterPage,这与在每个“内容”控制器中加载主视图似乎没有太大区别。如果我错了,请纠正我。
      • 谢谢!那是我阅读的确切页面。内容页面的顶部似乎需要像 这样的指令。
      猜你喜欢
      • 2021-09-29
      • 2016-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多