如何排除 Laravel 中的特定行?

How do I exclude a specific row in Laravel?

我正在尝试 return 我的数据库中的信息,但我想输出最新消息,与其他消息略有不同。

我通过以下代码成功获取了最新消息

$finalNews = News::find(DB::table('news')->max('id'));

但是我有另一个变量 return 来自 News table 的所有行,代码如下

$news = News::orderBy('id','desc')->get();

我想排除等于 $finalNews 的新闻行 在控制器的末尾,我 return 查看以下数据

return view('news', ['news' => $news, 'finalNews' => $finalNews]);

如何排除最新消息?我正在使用 Laravel 和 MySQL.

尝试使用下面的代码

$finalNews = News::find(DB::table('news')->max('id'));

$news = News::where('id','<>',$finalNews->id)->orderBy('id','desc')->get();

从新闻列表中排除最新消息的Id

$finalNews = News::find(DB::table('news')->max('id'));

$latestId = $finalNews->id;

$news = News::where('id','!=',$latestId)
        ->orderBy('id','desc')
        ->get();

首先,获取所有新闻

$news = News::orderBy('id','desc')->get();

然后,从 $news

中弹出最后一项(最新消息)
$latest_news = $news->pop();

https://laravel.com/docs/5.5/collections#method-pop

在这种情况下不需要使用 2 个查询