我正在使用基于Laravel的10月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:不起作用(Component 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()函数中,它就可以了。为什么echo echo $pageDetails
在代码示例2 上返回为空,如果它是在单独的函数show()
中运行的。
感谢您的帮助。
答案 0 :(得分:0)
尝试将其更改为RealEstate::where('slug', '=', $slug)->firstOrFail();
。 find
位在ID表中搜索列,而不是slug。
答案 1 :(得分:0)
您没有“回复”来自show()
尝试在$this->show();
return $this->show();
以返回onRun()
答案 2 :(得分:-1)
尝试将代码更改为此
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);
}
}
希望这可以解决您的问题