首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CodeIgniter 3.x -在父视图文件夹中嵌套多个视图文件夹

CodeIgniter 3.x -在父视图文件夹中嵌套多个视图文件夹
EN

Stack Overflow用户
提问于 2017-06-15 04:08:53
回答 2查看 623关注 0票数 1

问题/背景

我刚刚毕业,我即将完成我的网络组合。在我的学生组合不再托管之前,我想把我的一些学校项目转换成CodeIgniter。我想知道是否可以将项目的视图文件夹嵌套在父视图文件夹中,并在浪费太多时间之前使用单个控制器对其进行操作。

假设项目结构

下面是视图的文件夹/文件结构的示例。

意见/nwtc

代码语言:javascript
复制
nwtc
|
+---website-reviews
|   |
|   +---page1.php
|   +---page2.php
|   +---page3.php
|   +---page4.php
|   +---page5.php
|   +---page6.php
|
+---emerging-technology
|   |
|   +---page1.php
|
+---website-design
|   |
|   +---page1.php
|   +---page2.php
|   +---page3.php
|   +---page4.php
|   +---page5.php
|   +---page6.php
|
+---index.php     //     <--- Project landing page

理想URL结构

mysite.com/nwtc/$project/$page

假想控制器设计

控制器/Nwtc.php

代码语言:javascript
复制
<?php
class Nwtc extends CI_Controller {

    public function index()
    {
        $data['title'] = 'NWTC Projects';
        $data['description'] = '';

        $this->load->view('templates/nwtc_header', $data);
        $this->load->view('nwtc/index', $data);
        $this->load->view('templates/nwtc_footer');
    }

    public function view($project, $page)    //    <--- Total Guess
    {
        if ( ! file_exists(APPPATH.'views/nwtc/'.$project.'/'.$page.'.php'))
        {
        show_404();
        }

        $data['title'] = ucwords(str_replace("-"," ",$project)).' '.ucfirst($page);
        $data['assets'] = $project; // Project-specific css/js filenames
        $data['description'] = array(
            'website-reviews' => "",
            'emerging-technology' => "",
            'website-design' => ""
        );

        $this->load->view('nwtc/'.$project.'/'.$page, $data);  //   <--- I'll be amazed if this works
    }
}

问题

  1. 我的嵌套视图场景可能吗?
  2. 如果是的话,我的控制器需要更改什么?
  3. 有什么重要的考虑,我可能忽略了吗?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-15 04:21:47

是的,这是可能的,而且您的代码看起来可以加载页面。

代码语言:javascript
复制
    public function view($project, $page)    
        {
    //here $project argument stands for sub folder name
//eg:$project = 'website-reviews',$page = 'page1',then we can load page1.php file

    // do the operations

            $this->load->view('nwtc/'.$project.'/'.$page, $data);  
        }

在我看来,您的代码不需要任何更改

票数 1
EN

Stack Overflow用户

发布于 2017-06-15 06:55:41

是的,它可以载入你的观点。如果您的文件存在,它将加载,否则它将抛出错误。

代码语言:javascript
复制
public function view($project='', $page='') 
{   
  if($project !='' && $page !='')
  {
   $this->load->view('nwtc/'.$project.'/'.$page, $data); 
  } 
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44558399

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档