Как мне получить вторую последнюю запись таблицы в laravel - PullRequest
0 голосов
/ 28 августа 2018

Я хочу вторую последнюю запись из моей таблицы и поиск уже и Я попробовал это:

$news2 = News::orderBy('created_at', 'desc')->skip(1)->take(1)->get();

но ничего не работает.

Я получаю эту ошибку:

Свойство [datum] не существует в этом экземпляре коллекции. (Представление: C: \ xampp \ htdocs \ j4ylara \ resources \ views \ user \ start.blade.php)

Если я хочу последний, все работает отлично.

$news1 = News::all()->last();

и мой взгляд тот же

<div class="col-12 col-md-6 news">


    <div class="news-content">
                    <div class="date"><i class="far fa-calendar-alt"></i> {{ $news1->datum }}</div>
                    <h4 class="news-title">{{ $news1->newstitel }}</h4>
                    <p class="news-text">{{ $news1->newsbeschreibung }}</p>
                    <a href="#" class="btn btn-primary">
                        mehr lesen &raquo;
                    </a>
                </div>
            </div>
        </div>
        <div class="row no-gutters news-wrapper">
            <div class="col-12 col-md-6 news-image">
                <img class="img-fluid" src="https://picsum.photos/385/370/?random">
            </div>
            <div class="col-12 col-md-6 news">
                <div class="news-content">
                    <div class="date"><i class="far fa-calendar-alt"></i>{{ $news2->datum }}</div>
                    <h4 class="news-title">{{ $news2->newstitel }}</h4>
                    <p class="news-text">{{ $news2->newsbeschreibung }}</p>
                    <a href="#" class="btn btn-primary">
                        mehr lesen &raquo;
                    </a>
                </div>
            </div>
        </div>

Ответы [ 5 ]

0 голосов
/ 29 августа 2018

Я ПОЛУЧАЮ IIIIIIIIIIIT AHHHHHHHHHH:)

$row = News::count();
        $newsid = $row -2;
        $news1 = News::all()->last();
        $news2 = News::orderBy('created_at', 'desc')->skip($newsid)->take($newsid)->first();
        return view('user/start', compact('news1', 'news2', 'newsid'));
0 голосов
/ 28 августа 2018

Попробуйте:

$news2 = News::orderBy('created_at', 'desc')->offset(1)->take(1)->first();

get() возвращает коллекцию новостей. Вы должны использовать first()

0 голосов
/ 28 августа 2018

попробуйте

$news2 = News::orderBy('created_at', 'desc')->skip(1)->take(1)->first();

это возвращает только один result, если вам нужно больше, вам нужно использовать foreach внутри blade

0 голосов
/ 28 августа 2018

попробуйте использовать getModel() вместо get(), чтобы получить результат запроса

0 голосов
/ 28 августа 2018

Ошибка, которую вы получаете от представления, вы, вероятно, вызываете свойство "datum" для объекта, и одно из них не существует:

(View: C:\xampp\htdocs\j4ylara\resources\views\user\start.blade.php)

Запрос выглядит хорошо для меня

...