【发布时间】:2017-06-15 04:08:53
【问题描述】:
问题/背景
我刚毕业,即将完成我的网络作品集。我想在不再托管我的学生作品集之前将我的一些学校项目转换为 CodeIgniter。我想知道是否可以将项目的视图文件夹嵌套在父视图文件夹中,并在浪费太多时间之前使用单个控制器对其进行操作。
假设的项目结构
下面是视图的文件夹/文件结构的示例。
浏览次数/nwtc
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
理想的网址结构
mysite.com/nwtc/$project/$page
假设控制器设计
控制器/Nwtc.php
<?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
}
}
问题
- 我的嵌套视图场景是否可行?
- 如果是这样,我的控制器需要更改什么?
- 是否有任何我可能忽略的重要注意事项?
【问题讨论】:
-
是的,这是可能的。调用视图时需要传递文件夹名称。
$this->load->view('folder/file' )
标签: php codeigniter codeigniter-3