Using Instanceof in Laravel

Sử dụng Instanceof trong Laravel. Giúp ta dễ kiểm sót được các đối tưởng và kiểm tra được lỗi một cách rõ ràng hơn.

Ví dụ : mình xử dụng instanceof trong Try/Catch như sau:

use Illuminate\Database\Eloquent\ModelNotFoundException;
 /*
        $user =  new User;
        $product = new Product;
        dd(
            $user instanceof App\Models\Product, //Return "false"
            $user instanceof App\Models\User    //Return "true"
        );
    */
    $user_id = $request->id;
    try {
        // ✅ Lấy thông tin user từ Id
        $user = User::findOrFail($user_id);
        return Response()->json($user);
    } catch (ModelNotFoundException $e) {
        //👉 getModel (): Lấy mô hình Eloquent bị ảnh hưởng get
        //👉 getIds() : Nhận ID mô hình Eloquent bị ảnh hưởng.
        if($e instanceof Illuminate\Database\Eloquent\ModelNotFoundException){
            return Response()->json(['messages'=>$e->getModel(),'array'=>json_encode($e->getIds())]);
        }
    }

Cách trên mình cố tình kiểm tra lỗi nếu id user không đúng, mình dùng getModel(), getIds(). Hai hàm này có sẵn trong "ModelNotFoundException" bạn có thể xem ở đây : https://laravel.com/api/10.x/Illuminate/Database/Eloquent/ModelNotFoundException.html

Bài Viết Liên Quan

Messsage

Nếu bạn thích chia sẻ của tôi, đừng quên nhấn nút !ĐĂNG KÝ