2016-07-01 5 views
0

나는 Laravel에 내장 된 10 월 CMS를 사용하고 있으며, 나는 이상한 문제가있어 해석 할 방법이 확실하지 않습니다.함수 안에서 함수 호출하기 [PHP, Laravel, Eloquentl]

코드 샘플 1 : 작동 잘 (구성 요소 EstateList)

public function onRun() 
{ 
    $this->listEstates(); 
} 

/** 
* Pulls all the estates from the model 
* 
* @return $estateList 
*/ 
protected function listEstates() 
{ 
    $estateList = RealEstate::all(); 

    return $estateList; 
} 

코드 샘플 2 : 난 그냥 코드를 넣으면

public function onRun() 
{ 
    $this->show(); 
} 

/** 
* Returns the slug and display individual Estate Object 
* 
* @return $pageDetails 
*/ 
protected function show() 
{ 
    $slug = $this->param('slug'); 
    $pageDetails = RealEstate::find($slug); 

    echo $slug; //returns slug as it should 
    echo $pageDetails; //empty 

    if ($pageDetails) { 
    return $pageDetails; 
    } else { 
    return \Response::make('Page not found', 404); 
    } 
} 

을 (구성 요소 EstateDetails)를 작동하지 않습니다 show()를 onRun() 함수에 추가하면 잘 동작합니다. 왜 에코 echo $pageDetails 반환 빈 코드 샘플 2?은 별도의 기능으로 실행되는 경우 show()입니다.

도움 주셔서 감사합니다.

답변

0

RealEstate::where('slug', '=', $slug)->firstOrFail();으로 변경해보십시오. find 비트는 ID 테이블에서 슬러그가 아니라 열을 검색합니다.

0

하기는 희망이 문서가 문제를 해결하는 것이

public function onRun() 
{ 
    return $this->show(); 
} 

/** 
* Returns the slug and display individual Estate Object 
* 
* @return $pageDetails 
*/ 
protected function show() 
{ 
    $slug = $this->param('slug'); 
    $pageDetails = RealEstate::where('slug', '=', $slug)->firstOrFail();; 

    echo $slug; //returns slug as it should 
    echo $pageDetails; //empty 

    if ($pageDetails) { 
    return $pageDetails; 
    } else { 
    return \Response::make('Page not found', 404); 
    } 
} 

에 코드를 변경해보십시오 onRun()

-1

return $this->show();를 반환 $this->show();을 변경해보십시오 show()

의 응답을 '반환'되지 않습니다