отображение сообщений в laravel


отображение сообщений в laravel

04.11.2020 01:32:02 Просмотров 9 Источник

Привет, ребята, у меня есть карусельный слайдер для отображения постов. Я хочу отобразить последние 3 сообщения, а затем на следующем слайде другие 3 сообщения, которые находятся в строке. Так, например, 9,8,7 -> 6,5,4 ->> 3,2,1, но я не знаю, как взять последние 3 на активном, а затем отобразить другие 3 сообщения в строке. Любая помощь. Большое спасибо.

Контроллер:

$posts = Post::all();

Карусель:

<section class="news">
    <h1 class="section-heading text-highlight"><span class="line">Novinky</span></h1>     
    <div class="carousel-controls">
        <a class="prev" href="#news-carousel" data-slide="prev"><i class="fas fa-caret-left"></i></a>
        <a class="next" href="#news-carousel" data-slide="next"><i class="fas fa-caret-right"></i></a>
    </div><!--//carousel-controls--> 
    <div class="section-content clearfix">
        <div id="news-carousel" class="news-carousel carousel slide">
            <div class="carousel-inner">
                <div class="item carousel-item active"> 
                    <div class="row">
                        @foreach($posts->take(3) as $post) // Taking 3 posts but not latest
                        <div class="col-lg-4 col-12 news-item">
                            <h2 class="title"><a href="news-single.html">{{ $post->title }}</a></h2>
                            <img class="thumb" src="{{ Storage::disk('public')->url('post/'.$post->image) }}"  alt="{{ $post->title }}" />
                            <p>Suspendisse purus felis, porttitor quis sollicitudin sit amet, elementum et tortor. Praesent lacinia magna in malesuada vestibulum. Pellentesque urna libero.</p>
                            <a class="read-more" href="news-single.html">Číst více<i class="fas fa-chevron-right"></i></a>
                            asd
                        </div><!--//news-item-->
                        @endforeach
                    </div><!--//row-->
                </div><!--//item-->
                <div class="item carousel-item"> 
                    <div class="row">
                        @foreach($posts->take(3) as $post) // Taking the same 3 posts :/
                        <div class="col-lg-4 col-12 news-item">
                            <h2 class="title"><a href="news-single.html">{{ $post->title }}</a></h2>
                            <img class="thumb" src="{{ Storage::disk('public')->url('post/'.$post->image) }}"  alt="{{ $post->title }}" />
                            <p>Suspendisse purus felis, porttitor quis sollicitudin sit amet, elementum et tortor. Praesent lacinia magna in malesuada vestibulum. Pellentesque urna libero.</p>
                            <a class="read-more" href="news-single.html">Číst více<i class="fas fa-chevron-right"></i></a>                
                        </div><!--//news-item-->
                        @endforeach
                    </div><!--//row-->
                </div><!--//item-->
            </div><!--//carousel-inner-->
        </div><!--//news-carousel-->  
    </div><!--//section-content-->      
</section><!--//news-->

Изображение:

Активный слайд:

активный слайд

следующий слайд

У вопроса есть решение - Посмотреть?

Ответы - отображение сообщений в laravel / displaying posts in laravel

Mustafa Poya

04.11.2020 01:37:12

$posts = Post::orderBy('created_at', 'desc')->get();
Является ответом!
Babak

04.11.2020 01:43:46

сначала закажите их создав примерно так:

$posts = Post::orderByDesc('created_at')->get();

затем используйте метод chunk в коллекциях laravel, чтобы сделать это следующим образом:

@foreach ($posts->chunk(3) as $key => $chunk)
    <div class="item carousel-item {{ $key == 0 ? 'active' : ''}}"> 
        <div class="row">
            @foreach($chunk as $post) 
                <div class="col-lg-4 col-12 news-item">
                    <h2 class="title"><a href="news-single.html">{{ $post->title }}</a></h2>
                    <img class="thumb" src="{{ Storage::disk('public')->url('post/'.$post->image) }}"  alt="{{ $post->title }}" />
                    <p>Suspendisse purus felis, porttitor quis sollicitudin sit amet, elementum et tortor. Praesent lacinia magna in malesuada vestibulum. Pellentesque urna libero.</p>
                    <a class="read-more" href="news-single.html">Číst více<i class="fas fa-chevron-right"></i></a>
                            asd
                </div><!--//news-item-->
            @endforeach
        </div><!--//row-->
    </div><!--//item-->
@endforeach

этот метод разделяет коллекции на части, которые вы хотите, например:

$collection = collect([1, 2, 3, 4, 5, 6, 7]);

$chunks = $collection->chunk(4);

$chunks->toArray();

// [[1, 2, 3, 4], [5, 6, 7]]
Помочь в развитии проекта:
Закрыть X