Laravelselect数据库表的最后一行
我想要得到表中插入的最后一个文件。 我知道方法'第一',为您提供表中的第一个文件,但我不知道如何做最后一个插入。
谢谢。
您需要按照您现在订购的相同字段进行订购,但是需要降序。 举个例子,如果上传完成时有一个时间戳叫upload_time
,你可以这样做;
前拉拉维尔4
return DB::table('files')->order_by('upload_time', 'desc')->first();
对于Laravel 4及以上
return DB::table('files')->orderBy('upload_time', 'desc')->first();
这将通过上传时间降序排列文件表中的行,然后取第一个。 这将是最新上传的文件。
你从来没有提到你是否使用雄辩,Laravel的默认ORM或不。 如果你是,假设你想通过created_at获取用户表的最新条目,你可能可以做到以下几点:
User::orderBy('created_at', 'desc')->first();
首先,它通过created_at字段来下令订购用户,然后logging结果的第一条logging。
这将返回一个User对象的实例,而不是一个集合。 当然,要使用这个select,你必须有一个用户模型,扩展Eloquent类。 这可能听起来有点令人困惑,但是开始真的很容易,而且ORM可以非常有帮助。
有关更多信息,请查看相当丰富和详细的官方文档 。
使用Laravel提供的最新范围。
Model::latest()->first();
这样你就不会检索所有的logging。 orderBy更好的捷径。
Laravel系列有最后的方法
Model::all() -> last(); // last element Model::all() -> last() -> pluck('name'); // extract value from name field.
这是做到这一点的最好方法。
获取最后的logging细节
1. Model ::all()->last(); or 2. Model ::orderBy('id', 'desc')->first();
获取最后的loggingID
1. Model::all()->last()->id; or 2. Model ::orderBy('id', 'desc')->first()->id;
尝试这个 :
型号::最新() – > get()方法;
如果您正在查找刚刚使用Laravel 3和4插入的实际行,则可以在新模型上执行save
或create
操作,如:
$user->save();
-要么-
$user = User::create(array('email' => 'example@gmail.com'));
那么插入的模型实例将被返回并且可以用于进一步的操作,诸如redirect到刚创build的用户的简档页面。
寻找最后插入的logging工作在低音量系统将几乎所有的时间工作,但如果你曾经插入同时进去,你可以结束查询find错误的logging。 在需要更新多个表的事务系统中,这可能真的成为一个问题。
不知怎的,所有上述似乎并没有为我在laravel 5.3工作,所以我解决了我自己的问题:
Model::where('user_id', '=', $user_id)->orderBy('created_at', 'desc')->get();
希望能够把某人出去。
要获取最后的logging详细信息,请使用以下代码:
Model::where('field', 'value')->get()->last()