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

时间:2012-08-14 11:55:03

标签: php codeigniter controller

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

C:\wamp\www\OSW_appnsys\application\controllers

现在,当我从另一个名为“header.php”的视图文件中调用控制器“Pages”的“View”方法时,我收到了404错误

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

其中product是URI。

我这样称呼:

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

任何帮助都将受到高度赞赏。 TY

3 个答案:

答案 0 :(得分:2)

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

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

假设您已将控制器放在'pages / controllers /'文件夹中。在名为“pages”的控制器中,您加载视图(名为products_view.php的文件或某些内容,位于您的views文件夹中),如下所示:

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

答案 1 :(得分:1)

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

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

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

将这些更改为

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

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

即。

\
\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>

然后你会有一个带有View操作的Page控制器,其中可以执行

<?php
class Pages extends CI_Controller {

    public function view()
    {
        echo $this->load->view('pages/view');
    }
}
?>

答案 2 :(得分:0)

在锚标记

中尝试此操作
base_url().'index.php/pages/view'

并在Controller

中的视图函数中加载视图products.php