2017-07-17 1 views
1

Ceci est la bibliothèque, je l'ai créé pour charger des vues dans CodeIgniter,passer plusieurs pages dans une méthode CodeIgniter

Bibliothèque:

 public function view($view_name, $params = array(), $layout){ 

     $renderedview = $this->CI->load->view($view_name,$params,TRUE); 

     if($this->data['title']) 
     { 
      $this->data['title'] = $this->title_separator.$this->data['title']; 
     } 

     if(array_key_exists('error', $this->data)){ 
      $error = $this->data['error']; 
     } 
     else{ 
      $error = ''; 
     } 

     $this->CI->load->view('layouts/'.$layout, array(
       'content_for_layout' => $renderedview, 
       'title_for_layout' => $this->data['title'], 
       'error' => $error 
      )); 
    } 

Ici, je veux passer array (ayant des vues multiples) , actuellement, une seule vue est en train de le traverser.

Comment j'appelle cette méthode.

Controller Méthode:

public function __adminRegisterView() 
{ 
    $this->layouts->setTitle('Admin Register'); 
    $this->layouts->view('pages/admin/account/register','','admin/loginregister'); 
} 

Dans le Vue:

<body class="login-img3-body"> 
<?php echo $content_for_layout; ?> 
</body> 

Répondre

1

Vous pouvez faire quelque chose comme ceci:

public function view($view_name, $params = array(), $layout){ 

    if(!is_array($view_name)) 
    { 
     $view_name[] = $view_name; 
    } 

    $renderedview = ""; 
    foreach($view_name as $view) 
    { 
     $renderedview .= $this->CI->load->view($view,$params,TRUE); 
    } 


    if($this->data['title']) 
    { 
     $this->data['title'] = $this->title_separator.$this->data['title']; 
    } 

    if(array_key_exists('error', $this->data)){ 
     $error = $this->data['error']; 
    } 
    else{ 
     $error = ''; 
    } 

    $this->CI->load->view('layouts/'.$layout, array(
      'content_for_layout' => $renderedview, 
      'title_for_layout' => $this->data['title'], 
      'error' => $error 
     )); 
} 

vous pouvez maintenant appeler vue comme ça :

$this->layouts->view(array('pages/admin/account/register','pages/admin/account/login','test_view'),'','admin/loginregister'); 

ou:

$this->layouts->view('pages/admin/account/register','','admin/loginregister');