-1

Cách lấy last record of database table trong 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" => "[email protected]"
  "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" => "[email protected]"
  "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" => "[email protected]"
  "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!


All Rights Reserved

Viblo
Let's register a Viblo Account to get more interesting posts.