laravel: показывать конкретную запись на основе идентификатора и популярные записи на одной странице - PullRequest
0 голосов
/ 27 сентября 2019

У меня есть одна страница информации о сообщениях: - posts / show.blade.php .

На этой странице у меня есть одно поле информации о сообщениях и поле избранных сообщений.

В моем контроллере я уже поместил следующий код, чтобы показать один конкретный пост на основе идентификатора.

ResultsController.php

public function show($id,Post $post)
{
    $post= Post::find($id);
    $post->category;
    $post ->tags;
    return view('posts.show',compact('post'));
}

web.php

Route::get('results/{id}', 'ResultsController@show')->name('posts.show');

show.blade.php

//one of the cards for featured posts
<div class="image">
    <img src="../image/image2.jpg" alt="" width="300px" height="200px">
</div>
<div class="card-information">
    <div class="event-name">
        lorem
    </div>
    <div class="heart">
        <i class="fas fa-heart fa-lg" style="color: #F70661"></i>
    </div>

    <div class="event-date">
        2019.8.23
    </div>
    <div class="card-info">
        <p>Lorem ipsum dolor sit amet in Lorem, ipsum dolor
            <a href="#" style="color: white">...see more</a>
        </p>
    </div>
</div>

Кроме того, мне нужно показать карточки с избранными событиями внизу той же страницы ( show.blade.php ).Я думаю добавить этот код в мой контроллер.

$posts = Post::latest()->limit(6)->get();
$categories = Category::latest()->limit(6)->get();

Потому что я хочу показать 6 избранных постов.

Так что вопрос в том, как показать один конкретный пост и избранные посты наодна страница.

Я рад, если кто-то мне поможет.

1 Ответ

2 голосов
/ 27 сентября 2019

Как @kerbholz, определенный в комментариях, вы можете передать несколько данных в представлении.Мы также можем назначить оба сообщения одному массиву.Ваша функция показа должна выглядеть следующим образом.

public function show($id,Post $post)
{
    $particular_post= Post::find($id);
    $featured_posts = Post::latest()->limit(6)->get();
    // we can assign them to an array
    $posts['particular_post'] = $particular_post;
    $posts['featured_posts'] = $featured_posts;
    //here we can pass this array to the compact function
    return view('posts.show',compact('posts'));
}

В представлении вы можете получить к ним доступ следующим образом

//for featured_posts posts you need foreach loop
 @foreach($posts['featured_posts'] as $featured_post)
 {{ $featured_post->category }}
 @endforeach
 //for particular post you can just echo variable
 {{ $posts['particular_post']->category }}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...