我的模型中有一个查询,我需要在视图中打印数据
模型
function get_bank()
{
$query = $this->db->query("SELECT
(
12* (YEAR('account_add_date') - YEAR('start_date')) +
(MONTH('account_add_date') - MONTH('start_date'))
) AS differenceInMonth
->FROM ('bank')
WHERE mem_id = '".$this->session->userdata('id')."'");
return $query->result();
$data['account_age'] = $query->row_array();
}
我试图在我的模型中打印输出,但它不起作用,我不知道我哪里出错了。我是MVC的新手并且仍然习惯它。
查看
<h2>age of account</h2>
<?php
$age = $this->model('profiles_model' , $data );
print "<h2>$age</h2>";
?>
控制器
function index()
{
$data = array();
$this->load->model('user_profile/profiles_model');
$query = $this->profiles_model->get_bank();
if(!empty($query))
{
$data['records'] = $query;
}
$this->load->view('profile_view', $data);
}
答案 0 :(得分:6)
让我们先按适当的惯例编写代码。
模型
function get_bank() {
$mem_id = $this->session->userdata('id');
$query = $this->db
->select("12*(YEAR('account_add_date') - YEAR('start_date')) + (MONTH('account_add_date') - MONTH('start_date')) AS differenceInMonth")
->where('mem_id', $mem_id)
->get('bank');
return $query;
// $data['account_age'] = $query->row_array(); <-- Statement after return is useless.
}
控制器
function index() {
$data = array(
'records' => array()
);
$this->load->model('user_profile/profiles_model');
$bank = $this->profiles_model->get_bank();
if($bank->num_rows()){
$data['records'] = $bank->row_array();
}
$this->load->view('profile_view', $data);
}
查看
不确定您要对银行数据做什么,但是这里是如何打印记录的
<p>Bank data</p>
<p><?=isset($records['differenceInMonth'])?$records['differenceInMonth']:"No record found"?></p>
答案 1 :(得分:2)
你并不遥远,这样做:
控制器:
function index()
{
$this->load->model('user_profile/profiles_model');
$data = $this->profiles_model->get_bank();
$this->load->view('profile_view', $data);
}
型号:
function get_bank()
{
$query = $this->db->query("SELECT
(
12* (YEAR('account_add_date') - YEAR('start_date')) +
(MONTH('account_add_date') - MONTH('start_date'))
) AS differenceInMonth
->FROM ('bank')
WHERE mem_id = '".$this->session->userdata('id')."'");
return $query->result();
}
查看:
<?php
foreach(differenceInMonth AS $age){
echo "<p>" . $age . "</p>";
}
答案 2 :(得分:0)
当您加载视图时,您正在使用$data
传递包含您想要显示的数据的$data['records']
。
由于这是您在加载数据时将数据传递到视图的方式,因此您需要以这种方式调用它:
<?php
var_dump($records);
?>
您还需要循环访问数据,假设$ records是查询结果的数组,或者使用var_dump而不是print来验证数据是否存在。
阅读这些将有助于未来:
https://codeigniter.com/user_guide/general/views.html https://codeigniter.com/user_guide/general/models.html