2012-02-18 2 views
0

У меня есть Model, и я не уверен, как вернуть результат, чтобы я мог выбрать нужную строку, такую ​​как $this->model_name->function_name->function_value - или есть лучший способ?Foreach Loop возвращает данные как результат

Модель:

function companyDetails() 
    { 
     $this->db->select('coreCompanyName, coreContactName, coreContactEmail'); 

     $this->db->from('core'); 

     $query = $this->db->get(1); 

     foreach($query->result() as $row) 
     { 
      echo $row->coreCompanyName; 
     } 
     return $query; 
    } 

ответ

2

Как правило, вы могли бы назвать вашу модель функция что-то вроде getCompanyDetailsByID(), где вы проходите в уникальный идентификатор, и возвращает один результирующий объект соответственно:

<?php 
function getCompanyDetailsByID($id) 
{ 
    $this->db->select('coreCompanyName, coreContactName, coreContactEmail'); 
    $this->db->where('coreCompanyID', $id); 
    return $this->db->get('core')->first_row(); 
} 

Замените «coreCompanyID» на ваше основное имя столбца.

Сложение:

Вот как вы получите всю информацию обеих компаний:

<?php 
function getCompanyDetails() 
{ 
    $this->db->select('coreCompanyName, coreContactName, coreContactEmail'); 
    return $this->db->get('core')->result(); 
} 

// And then in your controller: 
function display() 
{ 
    $this->load->model('core'); 
    $companies = $this->core->getCompanyDetails(); 
    // Here's where you would probably load the data into a view 
    foreach ($companies as $company) 
    { 
     echo $company->coreCompanyName.'<br />'; 
    } 
} 

окончательный ответ! : P

<?php 
function companyDetails() 
{ 
    static $details; 

    if (!$details) 
    { 
     $this->db->select('coreCompanyName, coreContactName, coreContactEmail'); 
     $this->db->where('coreCompanyID', $id); 
     $details = $this->db->get('core')->first_row(); 
    } 

    return $details; 
} 

Теперь вы можете сделать несколько вызовов этой функции, и это будет только ударил вашу базу данных один раз, например:

<?php 
echo $this->core_model->companyDetails()->coreCompanyName; 
// do stuff 
echo $this->core_model->companyDetails()->coreContactName; 
// more stuff 
echo $this->core_model->companyDetails()->coreContactEmail; 

Все, что только хит базы данных один раз.

+0

Но тогда я должен был передать идентификатор в модель? –

+0

Как еще вы знаете, какой результат вы хотите? Если вы хотите получить все компании, это совсем другая история, и мне нужно будет изменить ответ. – landons

+0

, но в этом db будет только одна компания, поэтому я просто хотел извлечь данные –

Смежные вопросы