我有这个控制器代码:
10 $rowArr=$this->m_model->getItemData($itemID);
11 $rowArr=['code'=>'123','desc'=>'456','price'=>'789'];
12 $this->load->view('item_v',$rowArr);
在我的模特中,我有:
$result=$this->db
->select('code','desc','price')
->where('itemID',$itemID)
->get('catalog')
->row_array();
return $result;
当我运行它时,我会在'code','desc'和'price'列中显示预期的123,456,789,因为$ rowArr的第二个定义被发送。但是当我注释第11行时,允许第一个(预期的)定义接管 - 我在视图中得到了所有三个未定义的变量错误。
在我看来,我正在使用:
<div>
<?php
echo "<div>";
echo "code: ".$code."<br>";
echo "desc: ".$desc."<br>";
echo "price: ".$price."<br>";
echo "</div>";
?>
</div>
由于它使用文字数组工作正常我知道问题必须在模型中 - 毫无疑问我尝试从db查询对象创建数组。 CI文档似乎很清楚,使用row_array()方法应该将db对象转换为php数组。我已经尝试过我能找到或想到的每一个变化,但没有任何效果。谁能告诉我我犯的是什么错误?提前谢谢。
答案 0 :(得分:-1)
从评论中可以看出,感谢@DFriend和@shaggy,我发现了问题但不是我确定的问题。要打开上面描述为视图的页面,用户单击此代码中的tsEditButt:
$('.tsEditButt').click(function() {
var itemID=$(this).closest('.item').attr('id');
var base_url=$('#hiddenDiv').text(); //'http://localhost/CID17/';
var url=base_url+'controller_a/index/'+itemID,_blank;
window.open(url);
我以某种方式删除了部分内容:
var url=base_url+'controller_a/index/'+itemID,_blank;
所以它打开了新页面,但itemID丢失了,并且从未传递给模型。正如@DFriend所说,“如果模型返回null,则没有记录where item = $ itemID”。经过两天的偷窥后,我想我会记住这个。
答案 1 :(得分:-2)
控制器代码:
$rowArr = $this->m_model->getItemData($itemID);
$data['code'] = $rowArr->code;
$data['desc'] = $rowArr->desc;
$data['price'] = $rowArr->price;
$this->load->view('item_v', $data);
型号代码:
public function getItemData($itemID) {
$this->db->select('code','desc','price');
$this->db->from('catalog');
$this->db->where('itemID', $itemID);
$result_array=$this->db->get();
$result=$result_array->row();
return $result;
}