从视图中访问行数据 - CodeIgniter

时间:2013-12-19 02:12:06

标签: php codeigniter

我正在尝试从视图中访问行数据(从模型中提取)。但我似乎无法识别变量$row

型号:dash_model     public function getSettingsInformation(){         全球$ row;

    $session_data = $this->session->userdata('logged_in');
    $this->db->select('company_id, company_name');
    $this->db->from('company_information');
    $query = $this->db->get();

    if ($query->num_rows() > 0) {
        // grab data
        $row = $query->row();
    }
}

查看

在视图中我首先打电话:<?php $this->dash_model->getSettingsInformation(); ?>然后我尝试拨打$row->company_name,但它不允许我访问它。我得到了无法识别的变量。我也试过在模型类中公开它。任何帮助表示赞赏。

3 个答案:

答案 0 :(得分:1)

您不应该从模型访问变量来查看。您可以将结果传递给控制器​​,然后您可以在View中轻松访问它。

控制器:

$data['myData'] = $this->dash_model->getSettingsInformation();
$this->load->view("myViewName", $data);

查看:(myViewName)

echo "<table><tr><th>RowName</th></tr>";
foreach($myData as $myDatas)
{
echo "<tr>";
echo "<td>" . $myDatas->rowName . "</td>";
echo "</tr>";
}
echo "</table>"

答案 1 :(得分:1)

你的模特: 必须有以下代码段:return $ row

您的控制器:

$row = $this->dash_model->getSettingsInformation ();
$this->load->view('myView', data('row'=>$row));

您的观点:

echo $row->company_name;

答案 2 :(得分:0)

而不是在视图中调用模型函数,而不是在控制器中调用它并将结果传递给视图:

$data['row'] = <?php $this->dash_model->getSettingsInformation(); ?>
$this->load->view("your_view",$data);  

将您的模型功能更改为:

 public function getSettingsInformation()
 { global $row;

   $session_data = $this->session->userdata('logged_in');
   $this->db->select('company_id, company_name');
   $this->db->from('company_information');
   $query = $this->db->get();

   if ($query->num_rows() > 0) {
    // grab data
    $row = $query->row();
   }
   return $row;
}

您忘记添加返回$ row; 。现在,您可以在 $ row-&gt; company_name

中访问它