![](/img/trans.png)
[英]Codeigniter pass array from controller to model, But not returning a matching result
[英]Codeigniter 2 not returning from model as object only as result array
因此,我使用Codeigniter已有一段時間了,在我的模型中運行查詢並將其返回到控制器后再將其傳遞到我的視圖中時,我從未遇到任何問題,在該視圖中我可以將其作為對象進行訪問,如下所示:
模型(somemodel)
function getdata()
{
$query = $this->db->get('sometable');
return $query;
}
控制器(somecontroller)
function controldata()
{
$this->load->model('somemodel');
$data['dbdata'] = $this->somemodel->getdata();
$this->load->view('someview',$data);
}
查看(someview)
<?php
foreach($dbdata->result() as $row) {
echo $row->id;
echo $row->name;
echo $row->whatever;
echo "<br />";
}
?>
但是現在無論出於什么原因,在2.0中,它都將$ dbdata-> result_array()用作$ row。
基本上,它以數組形式返回結果。
這沒有任何意義,新版本中是否有所更改?
謝謝,
所以這是我的代碼:
型號(admin_model)
function show_allproducts($sort,$order,$limit,$offset)
{
$this->db->select('products.id,productcategories.categoryname,products.name,products.internetspecial,products.added,products.modified');
$this->db->from('products');
$this->db->join('productcategories','products.productcategories_id = productcategories.id');
$this->db->order_by($sort,$order);
$this->db->limit($limit,$offset);
$query = $this->db->get();
if($query->num_rows() > 0)
{
return $query;
}
else
{
return FALSE;
}
}
控制器(管理員)
function show_allproducts()
{
$data['title'] = 'All Products';
$this->load->library('pagination');
$config['base_url'] = 'http://'.$_SERVER['SERVER_NAME'].'/admin/show_allproducts';
$config['total_rows'] = $this->db->get('products')->num_rows();
$config['per_page'] = 10;
$config['num_links'] = 5;
$config['full_tag_open'] = '<div class="paggination right">';
$config['full_tag_close'] = '</div>';
$config['prev_link'] = '< prev';
$config['next_link'] = 'next >';
$config['cur_tag_open'] = '<a class="active">';
$config['cur_tag_close'] = '</a>';
$this->pagination->initialize($config);
$this->load->model('admin_model');
$data['tabledata'] = $this->admin_model->show_allproducts('name','ASC',$config['per_page'],$this->uri->segment(3));
$data['nav'] = 'admin/pagesections/nav';
$data['maincontent'] = 'admin/pages/show_allproducts';
$this->load->view('admin/template',$data);
}
VIEW(show_all_products)
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<?php if($tabledata) { ?>
<tr>
<th>ID</th>
<th>CATEGORY</th>
<th>NAME</th>
<th>ADDED</th>
</tr>
<?php foreach($tabledata->result() as $row) { ?>
<tr>
<td><?php echo $row->id; ?></td>
<td><?php echo $row->categoryname; ?></td>
<td><?php echo $row->name; ?></td>
<td><?php echo $row->added;) ?></td>
</tr>
<?php } ?>
<?php } else { ?>
<tr>
<td>NO DATA</td>
</tr>
<?php } ?>
</table>
除非您將$ dbdata-> result_array()指定為$ row ,否則不會將結果作為數組返回。 您發布的相同代碼必須在CI 2.0中有效。
如果不是這樣,可能是$ this-> db-> get('sometable')的問題 。
試試$ this-> db-> query('select * from sometable') 。 但據我所知,兩者都是相同的...
好的,伙計們,不要撒謊,我發現了這個令人毛骨悚然的問題。
查看第四個td,其中$ row->增加了; 在它的末尾有一個緊密的括號,造成了四天的混亂。
致以最誠摯的問候。 有時候,我猜多少眼睛都沒關系。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.