我正在浏览朋友的laravel代码,看到了一些功能,例如withPost
和其他功能,这是代码
public function show($id)
{
$categorylist = Category::all();
$tagfoot = Tag::all();
$post = Post::find($id);
$popularposts= Post::selectRaw("posts.*, count('comments.id') as comments_count")->leftJoin('comments','comments.post_id', '=', 'posts.id')->groupBy('posts.id')->orderBy('comments_count', 'desc')->take(6)->get();
$prev = Post::where('id', '<', $post->id)->orderBy('id', 'desc')->first();;
$next = Post::where('id', '>', $post->id)->orderBy('id', 'desc')->first();
return view('posts.show')->withPost($post)->withTagfoot($tagfoot)->withCategorylist($categorylist)->withPrev($prev)->withNext($next)->withPopularposts($popularposts);
}
withPost
,withTagfoot
,withCategorylist
,withPrev
,withNext
,withPopularposts
函数实际上是做什么的?
答案 0 :(得分:1)
在变量名之前使用with
关键字来创建函数是将变量传递给Laravel中的视图的一种方法。还有其他方法,所有方法都是相同的:
return view('posts.show')->withPost($post);
与此相同:
return view('posts.show', compact('post'));
答案 1 :(得分:0)
您提到的代码将值发送到视图'posts.show'
。
另一种发送价值的方式可能如下所示。在这里,您可以使用PHP的compact
函数列出变量。
return view('posts.show', compact('post', 'tagfoot', 'categorylist', 'prev', 'next', 'popularposts'));