CodeIgniter 从另一个视图通过控制器加载视图


CodeIgniter loading a view through controller from another view

出于此处提到的安全原因 http://codeigniter.com/user_guide/installation/index.html 我将系统和应用程序文件夹放在另一个名为 OSW_appnsys 的文件夹中,该文件夹位于 Web 根文件夹上方。现在我在以下目录中有一个名为"Pages"的控制器类和一个"View"函数。

C:'wamp'www'OSW_appnsys'application'controllers

现在,当我从另一个名为"header.php的视图文件中调用控制器"页面"的"视图"方法时,我收到这样的 404 错误

The requested URL /CodeIgniter_2.1.2/pages/view/products was not found on this server.

其中产品是 URI。

我这样称呼:

<a class="mainmenu" href="<?php echo base_url('pages/view/products')?>">Products</a>

任何帮助将不胜感激。泰

您不链接到视图,而是链接到控制器的名称。如果您的控制器名为"页面",则必须链接到:

<a class="mainmenu" href="<?php echo base_url('pages/controllers/products')?>">Products</a>

假设您已将控制器放置在"页面/控制器/"文件夹中。在名为"pages"的控制器中,您可以加载视图(名为products_view.php的文件或其他内容,位于视图文件夹中),如下所示:

$this->load->view('products_view.php');

看来您可能已经了解了CodeIgniter的工作原理。

如上所述,在您的配置文件中,您将拥有

$application_folder = 'application';
$system_folder = 'system';

将这些更改为

$application_folder = '../OSW_appnsys/application';
$system_folder = '../OSW_appnsys/system';

然后将浏览器指向 CodeIgniter 索引所在的 URL.php。

'
'OSW_appnsys
'OSW_appnsys'application
'OSW_appnsys'system
'htdocs
'htdocs'index.php

通过

http://localhost/index.php

此外,在访问控制器

或视图时,只需访问控制器名称即可。

<a href="<?php echo site_url('pages/view'); ?>">Go to page</a>

然后,您将拥有一个带有"查看"操作的页面控制器,在该控件中可以

<?php
class Pages extends CI_Controller {
    public function view()
    {
        echo $this->load->view('pages/view');
    }
}
?>

在锚标记中尝试一下

base_url().'index.php/pages/view'

并在控制器中加载视图products.php功能