[英]Calling a function inside a function [PHP, Laravel, Eloquentl]
我正在使用基於Laravel構建的October CMS,但遇到一些奇怪的問題,不確定如何解釋。
代碼示例1:工作正常(Component EstateList組件)
public function onRun()
{
$this->listEstates();
}
/**
* Pulls all the estates from the model
*
* @return $estateList
*/
protected function listEstates()
{
$estateList = RealEstate::all();
return $estateList;
}
代碼示例2:不起作用(組件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);
}
}
如果我只是將show()的代碼放入onRun()函數中,它將很好地工作。 為什么在代碼示例2中echo echo $pageDetails
返回空? 如果它在單獨的函數show()
。
謝謝您的幫助。
嘗試將其更改為RealEstate::where('slug', '=', $slug)->firstOrFail();
。 find
位在ID表中搜索列,而不是子段。
您不是在“返回” show()
的響應
嘗試更改$this->show();
返回return $this->show();
在onRun()
嘗試將代碼更改為此
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);
}
}
希望這可以解決您的問題
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.