我有一个方法index
protected function index(Request $request)
{
$articles = Article::published()->paginate(8);
return view('pages.blog', [
'articles' => $articles,
'orientation' => $this->getOrientation(),
$this->getCategory($request)
]);
}
方法getCategory()
public function getCategory($request)
{
if ($request->has('category')){
$search = $request->get('category');
$articles = Article::published()
->where('orientation', 'LIKE', '%' . $search . '%')
->paginate(8);
return view('pages.blog', [
'articles' => $articles,
'orientation' => $this->getOrientation()
]);
}
}
正如您所看到的,我尝试将我的getCategory
函数放在索引函数之外。
它的工作原理只有我的调试栏,我有所有SQL查询(索引和getCategory
的查询)。
谢谢
答案 0 :(得分:0)
如果您需要两个结果,请在索引中为查询添加缓存,并从缓存中获取完整结果。
或者,如果您有所有结果,可以使用集合过滤器从索引中获取相同的集合,并提供您需要的显示数据。
例如getCategory
添加param,从index设置集合。在文章中添加过滤器以仅获取您感兴趣的数据。
答案 1 :(得分:0)
我远不是一个编辑来解决这个问题,但现在就去了。第一个功能:
public function index(Request $request)
{
$articles = Article::published()->paginate(8);
return view('pages.blog', [
'articles' => $articles,
'orientation' => $this->getOrientation(),
//$this->getCategory($request) - this i don't think can work like this. You are calling
//a function that does not return a value, but instead loads a view, insted:
'categories' => $this->getCategory($request)//the idea here is you call a function and
//get a return as an array
]);
}
第二功能:
public function getCategory($request)
{
if ($request->has('category')){
$search = $request->get('category');
$articles = Article::published()
->where('orientation', 'LIKE', '%' . $search . '%')
->paginate(8);
$result = [
'articles' => $articles,
'orientation' => $this->getOrientation()
];
}
else $result = null;
return $result;
}
这可能再次成为一个菜鸟。但我不明白为什么你需要2个方法,因为有if ($request->has('category')){
会产生null
。 Idk,试一试......