我目前正在学习CodeIgniter并将其用于一个小项目。我想制作一个模板,这样我就不需要为视图编写重复的代码了。我喜欢这篇文章中的jruzafa答案:How to Deal With Codeigniter Templates?
在控制器中:
//Charge the view inside array
$data['body'] = $this->load->view('pages/contact', '', true);
//charge the view "contact" in the other view template
$this->load->view('template', $data);
在视图中查看template.php:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es">
<head>
<title>Template codeigniter</title>
</head>
<body>
<div>
<?=$body?>
</div>
<div class="clear"></div>
<div>Footer</div>
</div>
</body>
</html>
$ body是查看联系人。
但现在我遇到了一个问题。如果我将form_view作为字符串传递给$ data ['body'],则表单验证不起作用。有没有办法解决它?
感谢。
答案 0 :(得分:3)
尝试在模板中加载正文内容。这应该可以让您对输出更具选择性:
在控制器中:
// Set the path to body content inside the $data array
$data['path_to_body'] = 'pages/contact';
$this->load->view('template', $data);
在视图中查看template.php:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es">
<head>
<title>Template codeigniter</title>
</head>
<body>
<div>
<? $this->load->view($path_to_body) ?>
</div>
<div class="clear"></div>
<div>Footer</div>
</div>
</body>
</html>