如何将数据控制器传递给codeigniter中的视图

时间:2018-02-14 21:27:34

标签: php mysql codeigniter

我从数据库中获取用户配置文件字段,并希望在我的视图中显示但不知道是否使用主布局执行此操作。

这是我的模特

function fetchProfile($id,$page){
 $query = $this->db->query("SELECT * FROM staff_master WHERE Id='$id'");
 return $query->result(); 
}

这是我的控制者:

public function edit($id,$page){
    $data['query'] =  $this->StaffModel->fetchProfile($id,$page);
    $data= array('content'=>'view_staff_edit');
    $this->load->view('template_master',$data);
}

我也在努力寻找解决方案。我通过URL(get方法)传递用户ID和另一个。

4 个答案:

答案 0 :(得分:2)

下次分配数组时,您将覆盖$data['query']

$data['query'] =  $this->StaffModel->fetchProfile($id,$page);
$data= array('content'=>'view_staff_edit');

要么:

$data= array('content'=>'view_staff_edit');
$data['query'] =  $this->StaffModel->fetchProfile($id,$page); // note position

或者:

$data = array(
    'content' = 'view_staff_edit',
    'query' => $this->StaffModel->fetchProfile($id,$page),
);

通过$query$content访问视图。

相依:

您的查询中也遗漏了$page,如果未设置则通常将其声明为null,或者您会收到通知:public function edit($id=null,$page=null){

答案 1 :(得分:2)

您覆盖变量$data的第一个声明,您可以做的就是同时初始化它们。

<强>控制器

public function edit($id,$page){
    $data = array(
        'query'   => $this->StaffModel->fetchProfile($id,$page),
        'content' => 'view_staff_edit'
    );
    $this->load->view('template_master',$data);
}

然后在查看文件

上访问它
<h1><?php echo $content ?></h1>

<?php foreach($query as $result): ?>

    <p><?php echo $result->id ?></p>

<?php endforeach; ?>

答案 2 :(得分:0)

尝试做这样的事情:

public function edit($id,$page) {

    $data['query'] =  $this->StaffModel->fetchProfile($id,$page);
    $data['content']= 'view_staff_edit';
    $this->load->view('template_master',$data);

}

答案 3 :(得分:0)

你的模特

function fetchProfile($id){
    return $this->db->get_where('Id' => $id)->result_array(); 
}

您的控制器

public function edit($id,$page){
$data = array(
    'query'   => $this->StaffModel->fetchProfile($id),
    'content' => 'view_staff_edit',   
);
$this->load->view('template_master',$data);
}

您的“template_master”视图

<?php foreach ($query as $res){?>
<span><?php echo $res['Id'];?></span> //User html content according to your requirements ALSO you can add all columns retrieved from database
<?php } ?>