2016-07-01 15 views
0

私はLaravelで構築された10月のCMSを使用していますが、私はいくつかの奇妙な問題を抱えています。関数内で関数を呼び出す[PHP、Laravel、Eloquentl]

コード例1:私は、コードを入れた場合(コンポーネントEstateDetails)が動作しません

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); 
    } 
} 

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

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

    return $estateList; 
} 

(コンポーネントEstateList)細かいコードサンプル2作品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()

からの応答を「返す」されていません

関連する問題