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