laravel5: не существует в этом экземпляре коллекции - PullRequest
0 голосов
/ 30 сентября 2019

У меня ошибка

не существует в этом экземпляре коллекции.

В моем шоу .blade.php я хочу показать десять избранных сообщений.

Итак, в моем контроллере я использовал get() метод. И на моей странице просмотра я использовал @foreach. Но это не работает.

Вместо get() я использовал first(). Тогда это сработало. Я мог показать только последний пост.

Но это не то, чего я хочу достичь. Потому что

Я хочу показать десять последних сообщений.

ResultsController.php

public function show($id,Post $post)
{
    $particular_post= Post::find($id);
    $featured_posts = Post::latest()->limit(10)->get();

    $posts['particular_post'] = $particular_post;
    $posts['featured_posts'] = $featured_posts;

    return view('posts.show',compact('posts'));
}

show.blade.php

 @foreach($posts['featured_posts'] as $featured_post)
        <div class="swiper-container">
        <div class="swiper-wrapper">

            <div class="swiper-slide">
                <div class="image">
                    <img src="{{ asset('storage/'.$posts['featured_posts']->image) }}" alt="" width="300px" height="200px">
                </div>
                <div class="card-information">
                        <div class="event-name">
                            {{ $posts['featured_posts']->title }}
                        </div>
                        <div class="heart">
                            <i class="fas fa-heart fa-lg" style="color: #F70661"></i>
                        </div>
                    <div class="event-date">
                        {{ $posts['featured_posts']->date }}
                    </div>
                    <div class="card-info">
                        <p>{{ str_limit($posts['featured_posts']->description, 10) }}
                            <a href="#" style="color: white">...see more</a>
                        </p>
                    </div>
                </div>    
            </div>
            @endforeach

web.php

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

Ответы [ 2 ]

1 голос
/ 30 сентября 2019

Если это несколько элементов, тогда ваш шаблон должен иметь значение

и иметь переменную доступа как $featured_post->variable

@foreach($posts['featured_posts'] as $featured_post)
    <div class="swiper-container">
    <div class="swiper-wrapper">

        <div class="swiper-slide">
            <div class="image">
                <img src="{{ asset('storage/'.$featured_post->image) }}" alt="" width="300px" height="200px">
            </div>
            <div class="card-information">
                    <div class="event-name">
                        {{ $featured_post->title }}
                    </div>
                    <div class="heart">
                        <i class="fas fa-heart fa-lg" style="color: #F70661"></i>
                    </div>
                <div class="event-date">
                    {{ $featured_post->date }}
                </div>
                <div class="card-info">
                    <p>{{ str_limit($featured_post->description, 10) }}
                        <a href="#" style="color: white">...see more</a>
                    </p>
                </div>
            </div>    
        </div>
        @endforeach
0 голосов
/ 30 сентября 2019

попробуйте использовать take() вместо limit()

Post::latest()->take(5)->get();

или

Post::orderBy('created_at','desc')->take(5)->get();

или изменить код файла блейда.

@foreach($posts['featured_posts'] as $featured_post)
    <div class="swiper-container">
    <div class="swiper-wrapper">

        <div class="swiper-slide">
            <div class="image">
                <img src="{{ asset('storage/'.$featured_post->image) }}" alt="" width="300px" height="200px">
            </div>
            <div class="card-information">
                    <div class="event-name">
                        {{ $featured_post->title }}
                    </div>
                    <div class="heart">
                        <i class="fas fa-heart fa-lg" style="color: #F70661"></i>
                    </div>
                <div class="event-date">
                    {{ $featured_post->date }}
                </div>
                <div class="card-info">
                    <p>{{ str_limit($featured_post->description, 10) }}
                        <a href="#" style="color: white">...see more</a>
                    </p>
                </div>
            </div>    
        </div>
        @endforeach
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...