我想检索插入到表中的最后一个文件。我知道方法first()存在,并为您提供表中的第一个文件,但我不知道如何获得最后一个插入。
当前回答
对于拉拉维尔 8:
Model::orderBy('id', 'desc')->withTrashed()->take(1)->first()->id
结果的sql查询:
Model::orderBy('id', 'desc')->withTrashed()->take(1)->toSql()
从“时间表”中选择*按“id”排序
其他回答
Laravel 6中另一种奇特的方法。x(不确定,但必须适用于5。X也是):
DB:表(your_table) - > () - > ();
你也可以访问字段:
DB:表(your_table) - > () - > () - > id;
不要使用Model::latest()->first();因为如果你的集合有多行创建在同一时间戳(这将发生在你使用数据库事务DB::beginTransaction();和DB::commit())则返回集合的第一行,显然这不是最后一行。
假设id为11、12、13的行是使用transaction创建的,那么它们都将具有相同的时间戳,因此您将通过Model::latest()->first();id: 11的行。
你只需要检索数据并反转它们,你就会得到你想要的记录,让我解释laravel 9的代码
return DB::table('files')->orderBy('upload_time', 'desc')->first();
如果你不愿意。x的最后结果
return DB::table('files')->orderBy('upload_time', 'desc')->limit(x)->get();
老实说,这太令人沮丧了,我几乎不得不通过这里的所有答案来发现他们中的大多数都不是我想要的。事实上,我只想在浏览器中显示以下内容:
在我的表上创建的最后一行 只有一个资源
我并没有打算对一组资源进行排序,并以递减的方式排列列表,下面这行代码是我在Laravel 8项目中所使用的。
Model::latest()->limit(1)->get();
请注意,如果您正在寻找顺序的或事件/有序的记录,last()、latest()是不确定的。最后/最近的记录可以具有完全相同的created_at时间戳,而您返回的是哪一个不是确定的。所以做orderBy(id|foo)->first()。欢迎其他关于如何确定的想法/建议。
推荐文章
- 登录后,Laravel重定向回原始目的地
- Laravel中使用雄辩的ORM进行批量插入
- Laravel PHP命令未找到
- 如何使用Laravel和Eloquent查询两个日期之间?
- 从Laravel 5中的另一个控制器访问控制器方法
- Laravel未知列'updated_at'
- 如何评论laravel .env文件?
- Laravel -创建模型,控制器和迁移在单一的工匠命令
- 如何使用Laravel迁移将时间戳列的默认值设置为当前时间戳?
- 选择“表”中的“最后一行”
- Laravel:获取基本URL
- 迁移:不能添加外键约束
- Visual Studio代码PHP Intelephense保持显示不必要的错误
- 如何在laravel雄辩中选择具体的栏目
- PSR-0和PSR-4有什么区别?