由于我是MVC的初学者,我想尝试一下CodeIgniter,学习了PHP中MVC模式的基础知识,但是有一个我无法解决的问题。
我的“帮助”控制器中有一个“参考”功能,需要在视图中的特定位置输出。但是,函数的数据实际输出到真正的顶部。
它给了我什么: http://gyazo.com/1a17e9208c42f4b5d01e86ddad9a6d18
我需要它在左栏。
我的帮助控制器:
Class Help extends CI_Controller {
function __construct() {
parent::__construct();
$this->load->view('help_reference_head_view');
}
function reference($perm_reference) {
$this->load->model('help_model');
$this->help_model->getReference($perm_reference);
}
}
我的help_model:
Class help_model extends CI_Model {
function getReference($perm_reference) {
$this->db->select('*');
$this->db->from('help');
$this->db->where('perm_reference', $perm_reference);
$q = $this->db->get();
if($q->num_rows() == 1) {
foreach ($q->result() as $key) {
echo '<h2> ' . $key->perm_reference . '</h2>';
echo $key->desc;
$this->load->view('help_reference_footer_view');
}
} else {
return false;
}
}
}
help_reference_head_view文件(数据输出应该在col-md-9 div之后的文件的真正底部): http://gyazo.com/60d52006d63c93f1a96613ce46db2024
答案 0 :(得分:0)
我可能会创建一个主模板,并根据控制器响应加载多个视图。
class Helper extends CI_Controller
{
public $template;
public function __construct()
{
$this->template = 'layout/default'; //views/layout/default
$this->load->model('help_model');
}
public function index()
{
$reference = $this->help_model->getRef( $permissions );
if(!$reference){
return show_404();
}
return $this->load->view($this->template, array(
'view' => 'help/index',
'sidebar' => $this->load->view('sidebar/index', array( 'data' => $reference), true)
));
}
}
class Helper_Model extends CI_Model
{
public function getRef( $permissions )
{
$this->db->select() // prolly don't need this as it will return * by default
->from('help')
->where('perm_reference', $permissions);
$responce = $this->db->get();
return ($responce->num_rows() > 0 ) ? $responce->result : false;
}
}
<section>
<?php echo $this->load->view($view); ?>
</section>
<aside role="sidebar">
<?php if($sidebar) : ?>
<div class=help>
<?php echo $this->load->view($sidebar); ?>
</div>
<?php endif; ?>
<div>
//default sidebar stuff
</div>
</aside>