How to Retrieve the Last Record of a Database Table in Laravel

    Trong dự án nhiều khi chúng ta muốn lấy bản ghi cuối cùng trong 1 table nào đó.
Để giải quyết vấn đề này chúng ta có thể sử dụng hàm latest() hoặc orderBy() trong Laravel 6+.
Mình sẽ demo 3 cách lấy bản ghi cuối cùng trong table ở các ví dụ bên dưới nhé.
Đầu tiên mình sẽ tạo một table items có các dữ liệu demo như bên dưới.

    

Using latest() belong to created_at field:

    Khi sử dụng latest() mặc định nó sẽ lấy bản ghi cuối cùng dựa vào trường created_at trong table items.
Thêm code vào controller như bên dưới.
app\Http\Controllers\ItemController.php

<?php

namespace App\Http\Controllers;

use App\Models\Item;

class ItemController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $last_record = Item::latest()->first()->toArray();
        dd($last_record);
    }
}

    Output:

array:7 [▼
  "id" => 4
  "title" => "Four"
  "description" => "Four@gmail.com"
  "is_active" => 1
  "deleted_at" => null
  "created_at" => "2021-12-30T11:16:47.000000Z"
  "updated_at" => null
]

Using orderBy() belong to id field:

    app\Http\Controllers\ItemController.php

<?php

namespace App\Http\Controllers;

use App\Models\Item;

class ItemController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $last_record = Item::orderBy('id', 'DESC')->first()->toArray();
        dd($last_record);
    }
}

    Output:

array:7 [▼
  "id" => 4
  "title" => "Four"
  "description" => "Four@gmail.com"
  "is_active" => 1
  "deleted_at" => null
  "created_at" => "2021-12-30T11:16:47.000000Z"
  "updated_at" => null
]

Using latest() belong to id field:

    app\Http\Controllers\ItemController.php

<?php

namespace App\Http\Controllers;

use App\Models\Item;

class ItemController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $last_record = Item::latest('id')->first()->toArray();
        dd($last_record);
    }
}

    Output:

array:7 [▼
  "id" => 4
  "title" => "Four"
  "description" => "Four@gmail.com"
  "is_active" => 1
  "deleted_at" => null
  "created_at" => "2021-12-30T11:16:47.000000Z"
  "updated_at" => null
]

    Hy vọng bài viết này sẽ giúp ích cho các bạn!

Nguồn: Viblo

Bình luận
Vui lòng đăng nhập để bình luận
Một số bài viết liên quan