我想从Controller调用函数以包含到Codeigniter的View页面中。通常当我打开任何页面时,我会在Controller中调用$ this-> load-> view()来打开该页面。现在我想将子页面包含在主页面中,但它不能包含View中的任何功能。我尝试包含这样的函数。
<body><? include(site_url().'/login'); ?></body>
<body><? include('/login'); ?></body>
<body><? include('./login'); ?></body>
我可以使用此链接http://localhost/ci_house/index.php/login打开页面。但是当我打开主页以运行我的代码时,它会显示这些错误。
A PHP Error was encountered
Severity: Warning
Message: include(http://localhost/ci_house/index.php/login) [function.include]: failed to open stream: no suitable wrapper could be found
Filename: views/main.php
Line Number: 8
A PHP Error was encountered
Severity: Warning
Message: include() [function.include]: Failed opening 'http://localhost/ci_house/index.php/login' for inclusion (include_path='.;C:\php5\pear')
Filename: views/main.php
Line Number: 8
我想在1页中显示2个视图。
function test1()
{ $data['var_for_login_view'] = 'get table1';
$this->load->view('main1',$data);
}
function test2()
{ $data['var_for_login_view'] = 'get table2';
$this->load->view('main2',$data);
}
在views / main.php中:
$this->load->view('test1');
$this->load->view('test2');`
我想表现出像
<body>
include('main1.php');
include('main2.php');
</body>
但我可以在Codeigniter中这样显示。
答案 0 :(得分:1)
我真的无法理解你的问题,但是嘿,你可以在另一个视图中“包含”任何视图而不会出现问题。
在main.php中:
$this->load->view('login');
您甚至不需要将它传递给paramwters,因为它们是缓冲的,因此可用于您可能插入的任何子视图。但是,请更清楚你真正需要什么。
如果要在main()中包含您在login()方法中加载的相同视图,当然您不必包含CI URI,而只需创建需要在控制器方法登录中传递的变量(),然后调用你想要的任何视图,无论是为这个特定方法或任何其他控制器的方法设计的视图。
所以,for.ex。
function login()
{
$data['var_for_login_view'] = 'a variable';
$data['var_for_this_view'] = 'another variable';
$this->load->view('main');
}
在views / main.php中:
echo $var_for_this_view;
$this->load->view('login');
echo $var_for_login_view;
// see? $data was not passed to $this->load->view('login'), but it's still there nonetheless!
答案 1 :(得分:0)
我的理解是:您在其中一个控制器中定义了一些功能,并希望能够从另一个控制器/视图中调用这些功能。
如果这是正确的,那么我们通常不能这样做。以下是几种选择:
将这些功能移动到库/助手。在任何地方加载库/帮助程序,然后可以调用这些函数。
如果您绝对需要从控制器调用这些功能,可以查看HMVC extension。
答案 2 :(得分:0)
您不能使用网站网址,请使用此$ this-&gt; loading-&gt;视图('template',$ data);对于codeigniter。