Может кто-нибудь объяснить, что делают эти функции Laravel - PullRequest
0 голосов
/ 08 июля 2019

Я просматривал код моего друга и видел некоторые функции, такие как 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 функции на самом деле?

Ответы [ 2 ]

1 голос
/ 08 июля 2019

Использование ключевого слова with перед именем переменной для создания функции - один из способов передачи этой переменной представлениям в Laravel.Есть и другие способы, и все они идентичны:

return view('posts.show')->withPost($post);

точно так же, как это:

return view('posts.show', compact('post'));
0 голосов
/ 08 июля 2019

Ваш указанный код отправляет значения в представление 'posts.show'.

Другой способ отправки значения может быть следующим. Здесь вы можете использовать функцию compact PHP для вывода списка переменных.


return view('posts.show', compact('post', 'tagfoot', 'categorylist', 'prev', 'next', 'popularposts'));


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...