2014-01-12 3 views
1

동일한 클래스의 다른 함수에서 함수 변수에 액세스하려고합니다. 나는 상당히 새로운 개념으로 다른 함수에서 작동하도록 만들 수 있지만 자신의 함수를 만들려고 할 때 Trying to get property of non-object 그게 무슨 뜻인지는 알지만 그것 때문에 내 함수에서 반환해야 할 것이 무엇인지 혼란 스럽다. 내 다른 기능에서 작동하지.함수에서 객체 반환 Laravel 4

기능 오류

public function getEditTotal($id) { 

    $techs = $this->technician(); 

    $tech = $techs->tech; 

    var_dump($tech); die; 

    return View::make('report.edit', array('pageTitle' => 'Edit Report Total', 'id' => $id, 'tech' => $tech)); 
}` 

기능 나는 내가 전화하면 $tech 같은이 함수에서 변수가 완벽하게 정상적으로 작동하는지했다

public function technician() { 
    $tech = DB::table('technician') 
      ->get(); 

    return $tech; 
} 

를 호출하려고를 받고 $this->setComplete($id) 대신

setComplete ($ 아이디)에 반환 문 기능

return View::make('report.total', array('pageTitle' => 'Reporting', 'id' => $id, 'tech' => $tech, 'status' => $status)); 

내가 그 변수가 배열에 setComplete($id)에 반환되기 때문에 그 반환 그냥 방법입니다 확신합니다. 나는 정확히 technician() 함수에서 엄격하게 호출하는 법을 모른다.

답변

1

$techs = $this->technician();으로 전화 할 때 $ techs를 기술자 기능의 $ tech 변수 값과 동일하게 설정합니다. DB :: table ('technician')의 결과가 될 것입니다 -> get();

이론적으로 이것은 각 개체가 관리자 테이블에서 한 행을 나타내는 개체 배열이어야합니다.

무슨 일이 일어나고 있는지 알고 싶다면 return $ tech 문구 바로 전에 technician() 함수 안에 var_dump ($ tech)를 추가하십시오.

예상대로 작동하고 있음을 나타내므로 개체 배열이 나타납니다. 나는 당신이 그와 함께 수행 할 작업을 잘 모르겠지만, 컨트롤러 내부 :

foreach ($techs as $tech) { 
    echo $tech->somefieldInTech; 
} 

혹은

echo $techs[0]->somefieldInTech; 

그래서 명확하게하기 위해, 당신의 laravel 템플릿에, 당신은 통과 할 수 있습니다 전체 $ techs 및 템플릿을 통해 그것을 통해 foreach, 코드에서 그것은 당신이 데이터로 무엇을해야하는지 명확하지 않다.

+0

네, 그게 정확히 제가 얻은 것입니다. 대부분의 경우 테이블을 설정하고 템플릿에서 foreach합니다. 그 전체 작품을 돌려주고 싶다면 무엇을해야합니까? 그래서, 다른 페이지 나 기능에서 반복 할 수 있습니다. 나는 기본적으로 정확히 var_dump가 돌아 오는 것을 원하고있다. – Lynx

+0

당신의 정교함에 대한 답변베이스를 업데이트했습니다. – gview