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

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

2024-05-13 وقت القراءه : 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'));
 }

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

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

زائر
منذ 3 سنوات

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

moemen
منذ 3 سنوات

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

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

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

basem
منذ سنتين

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

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