如何获取 laravel 中 table 的倒数第二条记录

How do I get the second last record of a table in laravel

我想要我的 table 中的倒数第二条记录并且已经在搜索并且 我试过这个:

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

但没有任何效果。

我收到此错误:

Property [datum] does not exist on this collection instance. (View: 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>

您收到的错误来自视图,您可能正在为对象调用 "datum" 属性,但其中一个对象不存在:

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

我觉得查询不错

试试这个

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

这个return只有一个result如果你需要更多你需要在blade

里面使用foreach

尝试使用getModel()代替get()获取查询结果

试一试:

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

get() returns 新闻合集。您必须使用 first()

我明白了啊啊啊啊啊:)

$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'));