我想为客户分配一张卡,我想获得未分配的卡号。假设我有两类卡:1张是签证卡,2张是预付卡。我想当我分配一张主卡时,它只需显示主卡的未分配卡号和签证卡一样。这是我的代码。
型号代码
function getUnallocatedCards($object)
{
$this->db->select('*');
$this->db->from('cards');
$this->db->where('catagory_id',$object->catagory_id);
$this->db->where('status',$object->status);
$query = $this->db->get();
echo $this->db->last_query();
if($query->num_rows() == 0){
return null;
}
return $query->result();
}
控制器
public function AllocateCustomerCards($id='')
{
$userinfo='';
$contentObj='';
$submit=$this->input->post('submit');
if($submit=='submit')
{
$userinfo->customer_id = $this->input->post('cust_id');
$userinfo->status_id = $this->input->post('status_id');
$userinfo->card_number = $this->input->post('card_number');
$userinfo->card_id = $this->input->post('card_id');
$userinfo->print_date =$this->input->post('print_date');
$userinfo->issue_date =$this->input->post('issue_date');
$this->Cards_model->saveCardAllocat($userinfo);
echo $this->db->last_query();
}
$contentObj['unallocatedcards']=$this->Cards_model->getUnallocatedCards($userinfo);
$contentObj['cardtype']=$this->Cards_model->cardCatagories();
$contentObj['cardrequest']=$this->Cards_model->getCustomerCardRequst($id);
$this->load->view('admin/cardsystem/allocate_card',$contentObj);
}
查看
<tr><td><label>Select Card No. :</label><span style="display:inline;color:red;"> *</span> </td>
<td>
<select name="card_number" id="card_number" class="medium-input">
<option value=""> -- Select Card No. -- </option>
<?php
foreach($unallocatedcards as $customer)
{
echo '<option value="'.$customer->card_no.'">'.$customer->card_no.'</option>';
}
?>
</select><span class="input-notification error png_bg" id="error_number_id" style="display:none;"></span>
</td>
</tr>
但它显示以下错误
遇到PHP错误 严重性:通知
消息:尝试获取非对象的属性
文件名:models / cards_model.php
行号:339遇到PHP错误 严重性:通知
消息:尝试获取非对象的属性
文件名:models / cards_model.php
行号:340
第339行:
$this->db->where('catagory_id',$object->catagory_id);
第340行:
$this->db->where('status',$object->status);
我打印查询,这是我的查询结果:
SELECT * FROM (`cards`) WHERE `catagory_id` IS NULL AND `status` IS NULL
答案 0 :(得分:2)
在第一行试试这个
$userinfo= new stdClass();
答案 1 :(得分:0)
此消息:
尝试获取非对象的属性
表示您对不是对象的变量使用对象表示法
实际上,您可以在两行(339和340)中找到符号:$object->catagory_id
和$object->status
。结论很明显:变量$object
不是对象。
getUnallocatedCards($object)
控制器中调用的函数AllocateCustomerCards
将$userinfo
变量作为参数:
$contentObj['unallocatedcards']=$this->Cards_model->getUnallocatedCards($userinfo);
但$userinfo
在控制器的最开始定义为String类型:
$userinfo='';
您尝试在提交时设置$userinfo
的属性,但为时已晚
最简单的解决方案是Fabio给出的解决方案:将$userinfo
作为一个类启动:
$userinfo = new stdClass();
但请注意,因为当用户仅提交表单时,您正在填充$userinfo
的参数。这可能会导致其他问题。