【问题标题】:How to pass data controller to view in codeigniter如何将数据控制器传递给在codeigniter中查看
【发布时间】:2018-02-14 21:27:33
【问题描述】:

我正在从数据库中获取用户配置文件字段并希望在我的视图中显示,但不知道如何使用主布局。

这是我的模特

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 和另一个。

【问题讨论】:

标签: php mysql codeigniter


【解决方案1】:

当您接下来分配数组时,您正在覆盖$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,如果未设置,通常最好将gets 声明为null,否则您会收到通知:public function edit($id=null,$page=null){

【讨论】:

    【解决方案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; ?>
    

    【讨论】:

      【解决方案3】:

      尝试做这样的事情:

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

      【讨论】:

        【解决方案4】:

        你的模型

        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 } ?> 
        

        【讨论】:

          猜你喜欢
          • 2017-02-07
          • 2020-06-22
          • 2014-01-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-08-11
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多