2013-02-27 6 views
1

Я хочу выделить карту клиенту, и я хочу получить номер нераспределенных карт. Предположим, у меня есть 2 категории карт: 1 - карточка на визу и 2 - карточка предоплаты. Я хочу, чтобы я выделил мастер-карту, чтобы просто показать нераспределенные номера карт основной карты и то же самое для карт визы. Вот мой код.Dynamic Get Clumn value

Код Модель

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-ошибка была обнаружена
Серьезность: Обратите внимание
Сообщение: Попытка получить свойство необъектных
Имя файла: модели/cards_model.php
Порядковый номер: 339

PHP-ошибка была обнаружена
Серьезность : Уведомление
Сообщение: Попытка получить свойство необъектных
Имя файла: модели/cards_model.php
Номер Line: 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 

ответ

2

Попробуйте это на первой линии

$userinfo= new stdClass(); 
0

Это сообщение:

Попытка получить свойство необъектных

означает, что вы используете объект обозначения на переменную, которая не является объектом.
Действительно, вы можете найти обозначение в двух строках (339 и 340): $object->catagory_id и $object->status. Вывод очевиден: переменная $object не является объектом.

Функция getUnallocatedCards($object) называется в AllocateCustomerCards контроллера принимает $userinfo переменные в качестве параметра:

$contentObj['unallocatedcards']=$this->Cards_model->getUnallocatedCards($userinfo); 

но $userinfo определяются как тип Строки в самом начале контроллера:

Вы пытаетесь установить свойство $userinfo на submit, но уже слишком поздно.
Самое простое решение, которое дает Fabio: инициировать $userinfo как класс:

$userinfo = new stdClass(); 

Но обратите внимание, потому что вы заселение $userinfo «s параметры, когда пользователь отправляет форму ТОЛЬКО. Это может привести к другим проблемам.