我已从控制器
加载了三个视图$this->load->view('header_view');
$this->load->view('home_view');
$this->load->view('footer_view');
在 header_view 中考虑,我打开一个if语句并在页脚中关闭它
<?php
if(!$viewable){
echo "You cant view";
}else{
?>
在 footer_view 中我关闭了其他
<?php
}
?>
但是这段代码给了我一个错误。 解析错误:语法错误,header_view.php中的意外'}'
是否可以在一个视图中打开if语句并在另一个视图中关闭它......或者任何替代解决方案??? ...
答案 0 :(得分:3)
与HTML不同,PHP代码块需要有一个开始和结束标记。为什么?因为PHP代码在被发送到请求端(用户)之前在服务器上被解析,而HTML和js是相反的。
这意味着你不能“剪切”php代码块(if,while,for,foreach等)并将另一半放在另一个文件上。它不会解析为完整的PHP代码。
为了让您的代码运行,请尝试以下代码:
<?php
// Make the necessary security validations here
// then set the value of $viewable
// ...
///
// After that...
if(!$viewable){
echo "You can't view this page.";
}else{
$this->load->view('header_view');
$this->load->view('home_view');
$this->load->view('footer_view');
}
?>
...或者如果你想保留你的模板页眉和页脚:
<?php
// Make the necessary security validations here
// then set the value of $viewable
// ...
///
// After that...
$this->load->view('header_view');
if(!$viewable){
echo "You can't view this page.";
}else{
$this->load->view('home_view');
}
$this->load->view('footer_view');
?>
我希望那是你正在寻找的那个。如果没有,请告诉我。
答案 1 :(得分:2)
根据我的经验,在视图之间传输代码并不是一个好主意。由于视图是独立的实体,因此您从不喜欢创建相关视图。因为它降低了可用性。
并且不可能在一个视图中打开一个if括号而在另一个视图中关闭。
我百分百肯定必须有其他方法来实现你想要做的事情
答案 2 :(得分:1)
将主视图的名称传递给标题控制器,并将其加载到那里。
控制器:
$this->load->view('header_view', array('view_name' => 'home_view'));
标题视图:
if ($viewable) {
$this->load->view($view_name);
}
答案 3 :(得分:1)
不,你不能在一个视图中启动if块并在另一个视图中关闭它。
我会在控制器中做出决定,例如:
$this->load->view('header_view');
if(!$viewable) {
$this->load->view('denied_view');
}
else {
$this->load->view('home_view');
}
$this->load->view('footer_view');
甚至更好,使用模板视图。
所以你的控制器将是:
$data = array();
if(!viewable) {
$data['main_content'] = 'denied_view';
}
else {
$data['main_content'] = 'home_view';
}
$this->load->view('template_view', $data);
然后template_view.php(在视图目录中)将是:
$this->load->view('header_view');
$this->load->view($main_content);
$this->load->view('footer_view');
这意味着您不必在每个控制器上的每个方法中加载页眉和页脚视图,这样您就不会重复自己,它也看起来更整洁。
答案 4 :(得分:0)
这意味着什么,最好在视图中进行操作,让我们查看管理标题内容和页脚。 另一个有更好的方法是,你可以找到布局库。