2016-03-30 2 views
-2

Я работаю в проекте, где у меня есть клиенты и заказ. Я могу создавать новые клиенты, извлекать их и перечислить. Однако при бронировании мне нужно показать имя клиента, которое приходит от одной модели и контроллера, к моему фактическому виду, то есть к модели резервирования и контроллеру.Codeigniter Получение данных из двух разных моделей и отображение в одном виде

Я перечисляю клиентов и добавляю ссылку на другую страницу, где я показываю имя клиента, идентификатор резервирования и всю другую информацию из резервации.

Я новичок в программировании, я бы действительно приветствовал любую помощь. Заранее спасибо.

Мой клиентский контроллер перечисляет клиентов, чтобы я мог сделать заказ.

public function listarr(){ 
    $nome = $this->session->userdata("nome"); 
    $this->load->view("template/topo"); 
    $this->load->library('pagination'); 
    $this->load->model('Clientes'); 
    $config = array(); 
    $config['base_url'] = base_url().'cliente/listarr'; 
    $config['total_rows'] = $this->Clientes->count_tblclientes(); 
    $config['per_page'] = 10; 
    $config['num_links'] = 5; 
    //$config['uri_segment'] = 3; 

    $config['full_tag_open'] = "<ul class='pagination'>"; 
    $config['full_tag_close'] = "</ul>"; 
    $config['full_tag_open'] = "<li>"; 
    $config['full_tag_close'] = "</li>"; 
    $config['full_tag_open'] = "<li class ='disabled'><li class='active'><a href='#'>"; 
    $config['full_tag_close'] = "<span class='sr-only'></span></a></li>"; 
    $config['full_tag_open'] = "<li>"; 
    $config['full_tag_close'] = "</li>"; 
    $config['full_tag_open'] = "<li>"; 
    $config['full_tag_close'] = "</li>"; 
    $config['full_tag_open'] = "<li>"; 
    $config['full_tag_close'] = "</li>"; 
    $config['full_tag_open'] = "<li>"; 
    $config['full_tag_close'] = "</li>"; 



    $this->pagination->initialize($config); 
    $page = $this->uri->segment(3); 
    $data['tblclientes'] = $this->Clientes->fetch_tblclientes($config['per_page'], $page); 
    $data['links'] = $this->pagination->create_links(); 
    $data['message'] = ''; 

    $this->load->view("cliente/listarr",$data, array (
     'nome' => $nome)); 
    $this->load->view("template/rodape"); 
} 

Мой контроллер резервирования, где я хочу показать данные имени, поступающие от клиента, и показать другие данные из резервации.

public function ficha_completa($id) { 
    $this->load->view("template/topo"); 
    $this->load->model("Reservas", "rowDao"); 
    $resp = ""; 

    if($_POST){ 

    $nomecliente = $this->input->post("nomecliente"); 
     $datar = implode("-", array_reverse(explode("/", $this->input->post("datar")))); 
     $codcliente = $this->input->post("codcliente"); 
     $adultos = $this->input->post("adultos"); 
     $precoadulto = $this->input->post("precoadulto"); 
     $criancas = $this->input->post("criancas"); 
     $precocrianca = $this->input->post("precocrianca"); 
     $datasinal = implode("-", array_reverse(explode("/", $this->input->post("datasinal")))); 
     $valor = $this->input->post("valor"); 
     $obs = $this->input->post("obs"); 
     $data2 = implode("-", array_reverse(explode("/", $this->input->post("data2")))); 
     $valor2 = $this->input->post("valor2"); 
     $obs2 = $this->input->post("obs2"); 
     $data3 = implode("-", array_reverse(explode("/", $this->input->post("data3")))); 
     $valor3 = $this->input->post("valor3"); 
     $obs3 = $this->input->post("obs3"); 
     $locou = $this->input->post("locou"); 
     $excursao = $this->input->post("excursao"); 
     $referencia = $this->input->post("referencia"); 
     $grupo = $this->input->post("grupo"); 
     $obsfinal = $this->input->post("obsfinal"); 


     $data = array(
      'nomecliente' => $nomecliente, 
      'datar' => $datar, 
      'codcliente' => $codcliente, 
      'adultos' => $adultos, 
      'precoadulto' => $precoadulto, 
      'criancas' => $criancas, 
      'precocrianca' => $precocrianca, 
      'datasinal' => $datasinal, 
      'valor' => $valor, 
      'obs' => $obs, 
      'data2' => $data2, 
      'valor2' => $valor2, 
      'obs2' => $obs2, 
      'data3' => $data3, 
      'valor3' => $valor3, 
      'obs3' => $obs3, 
      'locou' => $locou, 
    'excursao' => $excursao, 
    'referencia' => $referencia, 
    'grupo' => $grupo, 
    'obsfinal' => $obsfinal, 

     ); 

     $this->rowDao->atualizar($data); 
     $resp = "Pessoa editada com sucesso!"; 
    } 

    $row = $this->rowDao->buscarPorId($id); 

    $this->load->view("reserva/ficha_completa", array(
     'row' => $row, 
     'resp' => $resp 
    )); 
    $this->load->view("template/rodape"); 
} 

Моя модель бронирования

public function buscarPorId($id){ 
    $this->db->where("codreserva", $id); 
    return $this->db->get("reservas")->first_row(); 
} 

мой HTML в виду, где данные показывают

   <div class="form-group"> 
        <label class="control-label col-md-3 col-sm-3 col-xs-12" for="last-name">Codigo do Cliente 
        </label> 
        <div class="col-md-6 col-sm-6 col-xs-12"> 
        <input readonly="readonly" type="text" id="codcliente" name="nomecliente" value="<?php echo $row->nomecliente; ?>" class="form-control col-md-7 col-xs-12"> 
        </div> 
       </div> 
       <div class="form-group"> 
        <label class="control-label col-md-3 col-sm-3 col-xs-12" for="last-name">Codigo da Reserva 
        </label> 
        <div class="col-md-6 col-sm-6 col-xs-12"> 
        <input readonly="readonly" type="text" id="codcliente" name="codreserva" value="<?php echo $row->codreserva; ?>" class="form-control col-md-7 col-xs-12"> 
        </div> 
       </div> 
       <div class="form-group"> 
        <label class="control-label col-md-3 col-sm-3 col-xs-12" for="first-name" >Data da reserva 
        </label> 
        <div class="col-md-6 col-sm-6 col-xs-12"> 
        <input readonly="readonly" type="text" id="datar" name="datar" value="<?php echo $row->datar; ?>" class="form-control col-md-7 col-xs-12" data-inputmask="'mask': '99/99/9999'"> 
        </div> 
       </div> 

Просто, чтобы показать также, что это контроллер, где я откладываю данные клиента

public function index(){ 
    $this->load->view("template/topo"); 
    $resp = ""; 
    //Se os dados chegarem via POST 
    if($_POST){ 

     $NomeCliente = $this->input->post("NomeCliente"); 
     $Endereco = $this->input->post("Endereco"); 
     $Bairro = $this->input->post("Bairro"); 
     $Cidade = $this->input->post("Cidade"); 
     $UF = $this->input->post("UF"); 
     $CEP = $this->input->post("CEP"); 
     $CGC_CPF = $this->input->post("CGC_CPF"); 
     $DataNasc = implode("-", array_reverse(explode("/", $this->input->post("DataNasc")))); 
     $CodSexo = $this->input->post("CodSexo"); 
     $TelResid = $this->input->post("TelResid"); 
     $TelComerc = $this->input->post("TelComerc"); 
     $Ramal = $this->input->post("Ramal"); 
     $Celular = $this->input->post("Celular"); 
     $E_mail = $this->input->post("E_mail"); 
     $Telrecado = $this->input->post("Telrecado"); 
     $Fax = $this->input->post("Fax"); 
     $Observacoes = $this->input->post("Observacoes"); 




     $dados = array(
      'NomeCliente' => $NomeCliente, 
      'Endereco' => $Endereco, 
      'Bairro' => $Bairro, 
      'Cidade' => $Cidade, 
      'UF' => $UF, 
      'CEP' => $CEP, 
      'CGC_CPF' => $CGC_CPF, 
      'DataNasc' => $DataNasc, 
      'CodSexo' => $CodSexo, 
      'TelResid' => $TelResid, 
      'TelComerc' => $TelComerc, 
      'Ramal' => $Ramal, 
      'Celular' => $Celular, 
      'E_mail' => $E_mail, 
      'Telrecado' => $Telrecado, 
      'Fax' => $Fax, 
      'Observacoes' => $Observacoes, 

     ); 

     //Carregar o Model Pessoas 
     $this->load->model("Clientes", "pDao"); 
     if($this->pDao->gravar($dados)) 
      $resp = $NomeCliente . ", enviado com sucesso!"; 
     else 
      $resp = $NomeCliente . ", nao enviado!"; 

    } 

    $this->load->view("cliente/index", 
      array('resp' => $resp)); 
    $this->load->view("template/rodape"); 
} 
+0

В чем проблема (я не понимаю)? Вы можете добавить различные модели в один и тот же контроллер, просто загрузите его ('$ this-> load-> model ('Clientes'), $ this-> load-> model ('Other'); $ this-> other-> function() ') и вызовите нужную функцию и прикрепите данные в вашем массиве данных' $ data'. Представление получит все данные, которые вы прикрепляете к нему. –

+0

вы можете добавить несколько моделей в один контроллер. просто загрузите его. – Divyesh

ответ

0

в контроллере вы можете загрузить многие модели и поместить данные модели в SINGL зрения

в вашей нагрузке контроллера во-первых, все ваши модальный

$this->load->model(array('modal1','modal2','modal3')); 

Контроллер

data['modaldata_1']=$this->modal1->model_1(); 
data['modaldata_2']=$this->modal2->model_2(); 
data['modaldata_3']=$this->modal3->model_3(); 
//putting all data in view 
$this->load->view('yourview',$data); 

View Вы можете распечатать свои данные.

print_r($modaldata_1); 
print_r($modaldata_2); 
print_r($modaldata_3); 
Смежные вопросы