我想检索插入到表中的最后一个文件。我知道方法first()存在,并为您提供表中的第一个文件,但我不知道如何获得最后一个插入。


当前回答

使用模型::(user_id, user_id美元)- >最新()- >先()- > (); 它将只返回一条记录,如果没有找到,它将返回null。 希望这能有所帮助。

其他回答

你从来没有提到你是否使用Eloquent, Laravel的默认ORM。如果你是,让我们假设你想要获得一个User表的最新条目,通过created_at,你可能会这样做:

User::orderBy('created_at', 'desc')->first();

首先,它根据created_at字段逐级排序用户,然后获取结果的第一条记录。

这将返回User对象的一个实例,而不是一个集合。当然,为了使用这个替代方案,您必须有一个User模型,扩展Eloquent类。这听起来可能有点令人困惑,但它真的很容易开始,ORM真的很有帮助。

要了解更多信息,请查看官方文档,它非常丰富和详细。

如果你正在寻找你刚刚用Laravel 3和4插入的实际行,当你在一个新模型上执行保存或创建操作时,如下所示:

$user->save();

-or-

$user = User::create(array('email' => 'example@gmail.com'));

然后将返回插入的模型实例,并可用于进一步的操作,例如重定向到刚刚创建的用户的配置文件页面。

在小容量系统上查找最后插入的记录几乎可以一直工作,但如果您必须同时插入,您可能最终会查询到错误的记录。在需要更新多个表的事务系统中,这确实会成为一个问题。

Laravel 6中另一种奇特的方法。x(不确定,但必须适用于5。X也是):

DB:表(your_table) - > () - > ();

你也可以访问字段:

DB:表(your_table) - > () - > () - > id;

使用Laravel提供的最新范围开箱即用。

Model::latest()->first();

这样就不用检索所有的记录了。orderBy的一个更好的快捷方式。

如果表有日期字段,这(User::orderBy('created_at', 'desc')->first();)是最好的解决方案,我认为。 但没有日期字段,Model::orderBy('id', 'desc')->first()->id;我相信这是最好的解决办法。