2013-06-19 2 views
0

Возможно, я даже не подумал об этом правильным способом или не спросил его правильным образом, потому что я очень новичок в CodeIgniter, и мои навыки PHP еще не слишком велики. В принципе, у меня есть страница (представление), которая принимает значения из массива $content. Эта часть отлично работает. У меня также есть некоторые данные, которые я извлекаю из базы данных, которая также должна отображаться на странице. У меня возникли проблемы с возможностью получить значения от $content И мои значения из базы данных на моей странице.Отправка 2 объектов данных на вид

Итак, длинный рассказ: как я могу захватить контент из базы данных, задать значения содержания в моем контроллере и передать оба варианта?

Вот мой код модели:

class Employees_model extends CI_Model {  

    function get_employees(){ 
     $query = $this->db->get('employees'); 
     return $query->result(); 
    } 

} 

А вот моя функция контроллера:

function create(){ 

    $this->load->helper(array('form', 'url')); 
    $this->load->library('form_validation'); 

    //getting employees content from the db 
    $this->load->model('Employees_model'); 
    if($query = $this->Employees_model->get_employees()){ 
     $content['employees'] = $query; 
    } 

    print_r($content); //this is displaying the correct content from the DB, but having trouble passing it to the view  

    $this->form_validation->set_rules('kpa1', 'KPA 1', 'trim|required'); 
    $this->form_validation->set_rules('kpa1_rating', 'KPA 1 Rating', 'trim|required|greater_than[0]'); 

    if ($this->form_validation->run() == FALSE){ 
     $this->load->view('create_review', $content); 

    } else { 

     $data = array(
      'kpa1' => $this->input->post('kpa1'), 
      'kpa1_rating' => $this->input->post('kpa1_rating') 
     ); 

     $content = array(
      'alert_type' => 'alert-success', 
      'message' => 'The review has been saved!' 
     ); 
     $this->load->model('Review_model'); 
     $this->Review_model->add_review($data); 
     $this->load->view('create_review', $content); 
     //this is only loading data from the $content array above 
    } 


} 

ответ

0

верхней части моей головы, вы могли бы сделать что-то вроде этого:

function create(){ 

      $this->load->helper(array('form', 'url')); 
      $this->load->library('form_validation'); 

      $content = array(); 

      //getting employees content from the db 
      $this->load->model('Employees_model'); 
      if($query = $this->Employees_model->get_employees()){ 
       $content['employees'] = $query; 
      } 

      print_r($content); //this is displaying the correct content from the DB, but having trouble passing it to the view  

      $this->form_validation->set_rules('kpa1', 'KPA 1', 'trim|required'); 
      $this->form_validation->set_rules('kpa1_rating', 'KPA 1 Rating', 'trim|required|greater_than[0]'); 

      if ($this->form_validation->run() == FALSE){ 
       $this->load->view('create_review', $content); 

      } else { 

       $data = array(
        'kpa1' => $this->input->post('kpa1'), 
        'kpa1_rating' => $this->input->post('kpa1_rating') 
       ); 
       //pass data to model 
       $this->load->model('Review_model'); 
       $this->Review_model->add_review($data); 

       //add more data 
       $data['kpa1'] = $this->input->post('kpa1'); 
       $data['kpa1_rating'] = $this->input->post('kpa1_rating'); 
       //see if we have employees data and if so add 
       if(isset($content['employees'])){ 
        $data['employees'] = $content['employees']; 
       } 

       //pass data to view 
       $this->load->view('create_review', $data); 
       //this is only loading data from the $content array above 
      } 


    } 
+0

Я попытался сделать что-то подобное. Позвольте мне попробовать еще раз. – Dustin

+0

Вам нужно будет скорректировать код выше инструкции if, позвольте мне еще раз проверить, что я пропустил эту часть – bottleboot

+0

Хорошо, теперь у меня это работает. Я думаю, что моя проблема заключалась в том, что я сначала не определял $ content как пустой массив. Вы увидите в моем заявлении else, я определяю $ content как новый массив, и он уничтожал то, что я установил возле вершины контроллера, когда получаю данные о сотрудниках из базы данных. Правильно ли это звучит? – Dustin

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