إستخدام find و all بشكل مفصل في Laravel Eloquent

إستخدام find و all بشكل مفصل في Laravel Eloquent

2024-03-04 وقت القراءه : 1 دقائق

لفرض أن لدينا الجدول أدنا وهو يحتوي على حقلين Name, Email

لجلب البيانات وعرضها بالجدول أعلاه فإننا نستخدم 

public function index(){
     $students = Student::all();
     return view('student', compact('students'));
 }

لكن الكود أعلاه يقوم بجلب جميع الحقول في قاعدة البيانات وكما بالصوره فإننا نحتاج فقط الإسم الأول والبريد الإلكتروني، لذلك يجب أن يتم جلب الحقول التي نريدها فقط

$students = Student::all('id', 'fname', 'email');

إذا أردنا جلب بيانات id=1

    public function index(){
         $student = Student::find(1);
         $students = [$student];
         return view('student', compact('students'));
     }

كما يمكن تحديد أكثر من id مع find

$students = Student::find([1, 2, 3]);

كذلك يمكن تحديد حقول معينة مع find

$students = Student::find([1, 2, 3], ['id', 'fname']);

ماذا لو كنا نريد أن نجلب بيانات id=1 لكن id=1 غير موجود في قاعدة البيانات

public function index(){
     $student = Student::find(1);
     if (!$student) abort(404);
     $students = [$student];
     return view('student', compact('students'));
 }

الكود أعلاه سيقوم بإرجاع 404 اذا كان id=1 غير موجود

لكن يمكن إستخدام findOrFail

public function index(){
     $student = Student::findOrFail(1111);
     $students = [$student];
     return view('student', compact('students'));
 }

كذلك يمكن إستخدام FirstOrFail مع where

public function index(){
     $student = Student::where('email', 'info@etharshrouf.com')->firstOrFail();
     $students = [$student];
     return view('student', compact('students'));
 }

التعليقات
زائر
منذ سنتين

اختصار الكود من اهم مميزات eloquent

زائر
منذ سنتين

شكرآ لك علي هذه المعلومات القيمة

moemen
منذ سنتين

معلومات قيمة بطريقة شرح ممتازة

ابراهيم حسن
منذ سنتين

اطال الله عمرك

basem
منذ سنتين

اختصار رائع ولكن ليس عملى بحيث اننى الرجوع برسالة بالخطأ الموجوده او عدم وجود البيانات لكن حينها سأحتاج الى عمل check للناتج عن الquery لكن فى الخطأ سأحتاج على الرجوع للخلف فى كل مرة هل هناك طريقة حتى اتحكم اذا كان الناتج fail (error1)

إضافة تعليق
Loading...