有人可以解释这些laravel函数做什么

时间:2019-07-08 01:52:17

标签: laravel laravel-5 eloquent

我正在浏览朋友的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);
    }

withPostwithTagfootwithCategorylistwithPrevwithNextwithPopularposts函数实际上是做什么的?

2 个答案:

答案 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'));