2012-12-12 5 views
-1

컨트롤러가 내 컨트롤러에 $data을 전달하지 않고 이유를 모르겠습니다. 나는 잘 작동했던 이전 프로젝트의 코드를 재사용하고 있는데, $ 데이터 전달이 작동하는 방법에 대한 아이디어를 확실히 이해하고 있습니다. 하지만 코드를 복사 할 때 뭔가를 놓친 것일까 요?

테스트 용으로 변수 $data['hello']을 입력했습니다. 출력에서 볼 수 있듯이 $hello도 통과하지 못합니다. if이 실패하고 else 코드가 올바르게 실행되어보기 파일 자체가로드되고 있음을 의미합니다.

컨트롤러 :

function users() { 
    $data['title'] = 'users'; 
    $data['users'] = $this->main_m->get_users(); 
    $data['hello'] = 5; 
    $this->load->view('users', $data); 
} 

보기 :

<?php 
echo $hello; 
if ($users->num_rows != 0) { 
    foreach ($users->result() as $user) { 
    } 
} else { 
    echo "No users."; 
} 

출력 (요약 된) :

A PHP Error was encountered 
Message: Undefined variable: hello 
Line Number: 2 
A PHP Error was encountered 
Message: Undefined variable: users 
Line Number: 3 
A PHP Error was encountered 
Message: Trying to get property of non-object 
Line Number: 3 

No users. 

편집 : 요청에 대한 추가 정보 : 모델 :

public function get_users($amount = 0, $offset = 0) { 
    $this->db->from('users'); 
    $this->db->order_by('l_name', 'desc'); 
    if ($amount != 0) 
     $this->db->limit($amount, $offset); 
    return $this->db->get(); 
} 
난 항상 이런 식으로 할
+0

모델 기능은 무엇입니까? get_users() – iijb

+0

위의 편집에서 추가되었습니다. – Chro

+0

보기에서 'users.php'보기 파일의 코드를 실행 하시겠습니까? –

답변

0

는 희망이 도움이

if (count($users)> 0) { 
foreach ($users as $user) { 
echo $user['name']; 
} 
} else { 
echo "No users."; 
} 

$query = $this->db->get(); 
return $query->result(); 

에 그리고보기에서 모델을 변경

감사

iijb

0

$data 어레이에 데이터를 보내기 전에 $data = array();으로 작성하십시오.

function users() { 
$data = array(); 
$data['title'] = 'users'; 
$data['users'] = $this->main_m->get_users(); 
$data['hello'] = 5; 
$this->load->view('users', $data); 
} 
0

간단한 var_dump() 확인으로 문제를 해결할 수 있다고 생각합니다.

  1. $ data [ 'users'] - 당신의 모델은 var_dump()에 의해 무엇이 나오는지 확인하십시오. var_dump() $ data [ 'users'] -> result()는 어떻게됩니까?
  2. 그러면 var_dump() $보기가 모든 부분을 차지합니까?

사실, 우리의 모델 기능이 실제 데이터 결과를 얻지 못했다는 것을 보여줍니다. 그것을 확인하십시오. 코드가 한눈에 알맞게 보이므로 문제가있는 곳이라고 생각하지 않습니다.

0

매우 기본적인 문제가 있습니다. 따라서 컨트롤러에서 빠져 나와 온전한 체크를하십시오. 먼저 환영보기가 작동하는지 확인하십시오. 환영 컨트롤러로 이동하여 인덱스 방법에 넣으면

$data['here'] = 'we are here' ; 
    $this->load->view('welcome_message', $data); 

그리고 나서 어딘가에 환영합니다.PHP보기 파일

<?php echo $here ?> 

당신은 이것을 설정할 필요가 없습니다 : $ 데이터 = 배열 ​​(); 그러나 어떤 사람들은 데이터 변수를 생성하지 않아도 뷰가 $ this-> load-> view ('welcome_message', $ data)를 호출하면 오류가 발생하지 않기 때문에 그러한 방법을 제안하는 사람들이 있습니다.

마침내 나는 사용자라는 개체, 사용자라는 뷰를 반환, 당신은 방법이라는 사용자를 볼 수 있습니다이

function users() { 
    $data['title'] = 'users'; 
    $data['users'] = $this->main_m->get_users(); 
    $data['hello'] = 5; 
    $this->load->view('users', $data); 
} 

보고 제안 - 혼란을 얻을 수 있었다! :-)

관련 문제