2015-11-28 1 views
0

Я не могу получить доступ к моему массиву контроллеров в моем представлении в codeigniter. Когда я передаю массив на мой взгляд, он дает мне неопознанную переменную ошибку, пожалуйста, помогите мне! Этот код предназначен для изменения профиля pic.Я не могу получить доступ к массиву контроллера в моем представлении в codeigniter

Я хочу показать измененное изображение на мой взгляд! Я могу получить путь фото из моей модели на мой взгляд, но не может получить доступ к моему из моего контроллера

Мой код здесь

Модель:

class Upload_model extends CI_Model { 
public function __construct() { 
    parent::__construct(); 
    $this->load->database(); 
    } 
public function update_photo($source) { 
    $username = $_SESSION['username']; 
    $pass = array('avatar'=> $source); 
    $this->db->update('users',$pass,array('username'=>$username)); 
    $query =  $this->db->get_where('users',array('avatar'=>$source,'username'=>$username),1 );  

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

Контроллер:

class Upload_photo extends CI_Controller { 
public $upload_model = ""; 
function __construct() 
{ 
    parent::__construct(); 
    $this->load->helper(array('form', 'url')); 
    $this->load->model('upload_model');    
} 
public function index() {  
    session_start(); 
    if(isset($_FILES['file1'])) 
    {  
    $u = $_SESSION['username'];   
    $config['upload_path'] = 'user/'.$u;   
    $config['allowed_types'] = 'gif|jpg|png'; 
    $config['max_size'] = '30000'; 
    $config['max_width'] = '1024'; 
    $config['max_height'] = '768';    
    $this->load->library('upload',$config);  
    $filename = $_FILES['file1']['name']; 

    if(!$this->upload->do_upload('file1')) 
    { 
    echo "Error". $this->upload->display_errors(); 
    return;   
    }      
    $config = array(); 
    $config['image_library'] = 'gd2'; 
    $config['source_image'] = 'user/'.$u.'/'.$filename ;     
    $config['new_image']= FCPATH . 'user/'.$u.'/Thumb/'; 
    $config['create_thumb'] = TRUE; 
    $config['maintain_ratio'] = FALSE; 
    $config['width'] = 110; 
    $config['height'] = 110;   
    $this->load->library('image_lib',$config);      
    if(!$this->image_lib->resize()) 
    { 
    echo $this->image_lib->display_errors();       
    } 
    $source = base_url().'user/'.$u.'/Thumb/'.$filename; 
    $data["avatar"] = $this->upload_model->update_photo($source); 
    } 
    else 
    {  
    $this->load->view('profile_view',$data);  
    }  
}  
} 

View - не удалось получить доступ к $ аватару:

<div id="showimage" name='showimage'> 
<?php 
    foreach ($avatar as $row) 
    {  
    echo $row; 
    } 
?>  
</div> 
+0

способен получать данные формы базы данных Вы ??? – Saty

+0

Да! Я проверил его в контроллере print_r ($ data); – jems

ответ

0

для вышеперечисленного контроллера вы определяете $ data ["avatar"] в if, если true, но вы загружаете представление в другой части. как это займет ....

Вот так оно дается как undifened переменной ..

раз проверить контроллер.

+0

да, вы правы, сэр! Я исправлю это и поставлю $ this-> load-> view ('profile_view', $ data) в true, но без результата – jems

+0

И сэр, я хочу загрузить представление, если только условие ложно! когда условие истинно, я не могу получить данные, но я не знаю, как получить доступ к представлению – jems

0

в контроллере

class Upload_photo extends CI_Controller{ 
public $upload_model = ""; 
function __construct() 
{ 
parent::__construct(); 
$this->load->helper(array('form', 'url')); 
$this->load->model('upload_model');    
} 
public function index() 
{  
    session_start(); 
    if(isset($_FILES['file1'])) 
    {  
     $u = $_SESSION['username'];   
     $config['upload_path'] = 'user/'.$u;   
     $config['allowed_types'] = 'gif|jpg|png'; 
     $config['max_size'] = '30000'; 
     $config['max_width'] = '1024'; 
     $config['max_height'] = '768';    
     $this->load->library('upload',$config);  
     $filename = $_FILES['file1']['name']; 

     if(!$this->upload->do_upload('file1')) 
     { 
      echo "Error". $this->upload->display_errors(); 
      return;   
     } 

     $config = array(); 
     $config['image_library'] = 'gd2'; 
     $config['source_image'] = 'user/'.$u.'/'.$filename ;     
     $config['new_image']= FCPATH . 'user/'.$u.'/Thumb/'; 
     $config['create_thumb'] = TRUE; 
     $config['maintain_ratio'] = FALSE; 
     $config['width'] = 110; 
     $config['height'] = 110;   
     $this->load->library('image_lib',$config); 

     if(!$this->image_lib->resize()) 
     { 
      echo $this->image_lib->display_errors();       
     } 
     else 
     {  
      $source = base_url().'user/'.$u.'/Thumb/'.$filename; 
      $data['avatar'] = $this->upload_model->update_photo($source);  
      $this->load->view('profile_view',$data); 
     } 
    }  
}  
} 

попробовать это в виду

<div id="showimage" name='showimage'> 

<?php 
    isset($avatar){ 
    foreach ($avatar as $row) 
    {  
    echo $row; 
    } 
    } 
?> 

+0

, но сэр - когда я пишу $ avatar, его мой редактор показывает мне предупреждение. «Переменная кажется неинициализированной. – jems

+0

попробуйте этот контроллер. –

+1

cant use $ avatar, потому что редактор показывает мне неопознанный объект по ошибке – jems

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