Hafsa Aly نشر 14 فبراير 2021 أرسل تقرير نشر 14 فبراير 2021 هل التابع first() نفس دور get() ام انه لجلب المستخدم الاول واذا كان لدي مثلا في جدول البيانات ثلاثة مواضيع واريد عرض اول وثاني موضوع فقط ومرة اخرى عرض موضوعين فقط ولكن بطريقه عشوائيه 1 اقتباس
0 سامح أشرف نشر 14 فبراير 2021 أرسل تقرير نشر 14 فبراير 2021 (معدل) التابع first() يقوم بجلب أول سجل يجده فقط، بينما التابع get() يجلب صنف collection، ويمكن تخيل هذا الصنف على أنه مصفوفة array من السجلات يمكن إستخدامها في حلقات التكرار مثل for loop أو while loop. بالنسبة لجلب عدد محدد من السجلات فيمكن إستخدام التابع limit(num) والذي يقبل عدد يتم تمريره إليه يعبر عن عدد السجلات المراد جلبها. $user = User::limit(2)->get(); بالنسبة لجلب السجلات بطريقة عشوائية in random order فيمكن إستخدام التابع ()inRandomOrder ليجلب كل السجلات في ترتيب عشوائي. $users = User::inRandomOrder()->get(); تم التعديل في 14 فبراير 2021 بواسطة سامح أشرف إضافة كود للتوضيح 3 اقتباس
0 Hafsa Aly نشر 14 فبراير 2021 الكاتب أرسل تقرير نشر 14 فبراير 2021 بتاريخ 10 دقائق مضت قال سامح أشرف: التابع first() يقوم بجلب أول سجل يجده فقط، بينما التابع get() يجلب صنف collection، ويمكن تخيل هذا الصنف على أنه مصفوفة array من السجلات يمكن إستخدامها في حلقات التكرار مثل for loop أو while loop. بالنسبة لجلب عدد محدد من السجلات فيمكن إستخدام التابع limit(num) والذي يقبل عدد يتم تمريره إليه يعبر عن عدد السجلات المراد جلبها. $user = User::limit(2)->get(); بالنسبة لجلب السجلات بطريقة عشوائية in random order فيمكن إستخدام التابع ()inRandomOrder ليجلب كل السجلات في ترتيب عشوائي. $users = User::inRandomOrder()->get(); ولكن التابع limit سيجلب لي او سجلين يراهم اما اذا اردي سجلين مثلا السادس والسابع فماذا استخدم 1 اقتباس
0 سامح أشرف نشر 14 فبراير 2021 أرسل تقرير نشر 14 فبراير 2021 بتاريخ 1 دقيقة مضت قال Hafsa Aly: ولكن التابع limit سيجلب لي او سجلين يراهم اما اذا اردي سجلين مثلا السادس والسابع فماذا استخدم يمكن إستخدام التابع whereIn والذي يقبل اسم عمود ومصفوفة من القيم $users = User::whereIn('id', [6, 7, 9])->get(); في الكود أعلاه سيتم جلب السجلات التي تحمل معرف 6 و 7 و 9 فقط. هنا مثال آخر لجلب كل السجلات الخاصة بالمستخدمين الذين لديهم عمر أكبر من 18 ووضع حد لعدد السجلات التي يتم جلبها وهو 100 سجل فقط $users = User::where('age', '>=', 18)->limit(100)->get(); 1 اقتباس
0 بلال زيادة نشر 14 فبراير 2021 أرسل تقرير نشر 14 فبراير 2021 first تستخدم لجلب صف واحد ( سجل واحد ) من الجدول داخل قاعدة البيانات. $user = User::where('id', 1)->first(); ويتم جلب هذا الاستعلام داخل ملف view فمثلاً <p>{{ $user->name }}</p> أما get تستخدم لجلب عدة سجلات على شكل مصفوفة كما في المثال التالي $posts = Post::where('user_id', 1)->get(); ويتم جلب هذا الاستعلام داخل ملف view فمثلاً <table class="table table-bordered table-hover"> <thead> <tr> <th>ID</th> <th>Phone</th> <th>ORDER</th> <th>DATE</th> </tr> </thead> <tbody> @foreach($posts as $post) <tr> <td>{{ $post->id ?? '' }}</td> <td>{{ $post->title ?? '' }}</td> <td>{{ $post->desc ?? '' }}</td> <td>{{ $post->created_at ?? '' }}</td> </tr> @endforeach </tbody> </table> ويمكن استخدام أي دالة loop مثل while , for, foreach لجلب عناصر المصفوفة العائدة من الاستعلام 1 اقتباس
0 Hafsa Aly نشر 14 فبراير 2021 الكاتب أرسل تقرير نشر 14 فبراير 2021 بتاريخ 9 دقائق مضت قال سامح أشرف: يمكن إستخدام التابع whereIn والذي يقبل اسم عمود ومصفوفة من القيم $users = User::whereIn('id', [6, 7, 9])->get(); في الكود أعلاه سيتم جلب السجلات التي تحمل معرف 6 و 7 و 9 فقط. هنا مثال آخر لجلب كل السجلات الخاصة بالمستخدمين الذين لديهم عمر أكبر من 18 ووضع حد لعدد السجلات التي يتم جلبها وهو 100 سجل فقط $users = User::where('age', '>=', 18)->limit(100)->get(); واذا اردت مثلا صورته وعمره لنفس السجلات اقتباس
0 بلال زيادة نشر 14 فبراير 2021 أرسل تقرير نشر 14 فبراير 2021 بتاريخ 5 دقائق مضت قال Hafsa Aly: واذا اردت مثلا صورته وعمره لنفس السجلات $users = User::select('name', 'image', 'age')->where('age', '>=', 18)->limit(100)->get(); يمكنك جلب عدة حقول باستخدام دالة select كما في المثال إعلاه, اسماء الحقول داخل دالة select هي اسماء الحقول كما في الجدول في قاعدة البيانات. أما لو كنتي تقصدين كيف يتم ارجاع الحقول جميعها $users = User::where('age', '>=', 18)->limit(100)->get(); $users = User::whereIn('id', [6, 7, 9])->get(); هذه الاستعلامات ترجع جميع الحقول الموجودة لكل سجل وما قمنا بتحديده في دالة where أو whereIn هو الشرط الذي الذي يعود بالنتائج بناء عليه. 2 اقتباس
0 Hafsa Aly نشر 14 فبراير 2021 الكاتب أرسل تقرير نشر 14 فبراير 2021 بتاريخ 15 دقائق مضت قال بلال زيادة: $users = User::select('name', 'image', 'age')->where('age', '>=', 18)->limit(100)->get(); يمكنك جلب عدة حقول باستخدام دالة select كما في المثال إعلاه. $aboutus = About::all(); $about = $aboutus::whereIn('id', [1,2])->get(); هل هذه الطريقه صحيحه انني اخذ القيمه من ال instance اقتباس
0 بلال زيادة نشر 14 فبراير 2021 أرسل تقرير نشر 14 فبراير 2021 بتاريخ 2 دقائق مضت قال Hafsa Aly: $aboutus = About::all(); $about = $aboutus::whereIn('id', [1,2])->get(); هل هذه الطريقه صحيحه انني اخذ القيمه من ال instance لا داعي للكود التالي $aboutus = About::all(); الثاني يعمل بشكل صحيح مع تغيير $aboutus إلى اسم المودل هكذا $about =About::whereIn('id', [1,2])->get(); اقتباس
0 Hafsa Aly نشر 14 فبراير 2021 الكاتب أرسل تقرير نشر 14 فبراير 2021 بتاريخ 2 دقائق مضت قال بلال زيادة: لا داعي للكود التالي $aboutus = About::all(); الثاني يعمل بشكل صحيح مع تغيير $aboutus إلى اسم المودل هكذا $about =About::whereIn('id', [1,2])->get(); ولكن انا اريد كل السجلات الموجوده في الموديل في مرة وفي مرة اخرى اريد سجلين فقط اقتباس
0 بلال زيادة نشر 14 فبراير 2021 أرسل تقرير نشر 14 فبراير 2021 بتاريخ الآن قال Hafsa Aly: ولكن انا اريد كل السجلات الموجوده في الموديل في مرة وفي مرة اخرى اريد سجلين فقط هل هكذا $aboutus = About::all(); $about =About::whereIn('id', [1,2])->get(); يمكنك استخدام كل استعلام بشكل منفصل. اقتباس
0 Hafsa Aly نشر 14 فبراير 2021 الكاتب أرسل تقرير نشر 14 فبراير 2021 بتاريخ 29 دقائق مضت قال بلال زيادة: هل هكذا $aboutus = About::all(); $about =About::whereIn('id', [1,2])->get(); يمكنك استخدام كل استعلام بشكل منفصل. namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Slide; use App\About; public function homepage(){ $slides = Slide::all(); $about = About::whereIn('id', [1,2])->get(); return view ('front.homepage', compact('slides','about')); } هل هذا الكود صحيح 1 اقتباس
0 بلال زيادة نشر 14 فبراير 2021 أرسل تقرير نشر 14 فبراير 2021 بتاريخ الآن قال Hafsa Aly: namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Slide; use App\About; public function homepage(){ $slides = Slide::all(); $about = About::whereIn('id', [1,2])->get(); return view ('front.homepage', compact('slides','about')); } هل هذا الكود صحيح ممتاز جدا يمكنك التحقق أكثر عندما تطبعي البيانات في ملف view. 1 اقتباس
0 سامح أشرف نشر 14 فبراير 2021 أرسل تقرير نشر 14 فبراير 2021 بتاريخ 1 دقيقة مضت قال Hafsa Aly: namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Slide; use App\About; public function homepage(){ $slides = Slide::all(); $about = About::whereIn('id', [1,2])->get(); return view ('front.homepage', compact('slides','about')); } هل هذا الكود صحيح إن كانت هذه الدالة homepage بداخل class فلا توجد في الكود مشكلة. إن الكود يعمل ولا يظهر مشكلة أو خطأ فهو كود سليم وليس بحاجة إلى تعديل، لكن يفضل أن يكون الكود منظم ومرتب ويحتوي على تعليقات لشرح كل الخطوات. مثال لنفس الكود بداخل class: namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Slide; use App\About; class HomeController extends Controller { public function homepage(){ $slides = Slide::all(); $about = About::whereIn('id', [1,2])->get(); return view ('front.homepage', compact('slides','about')); } } 1 اقتباس
0 Hafsa Aly نشر 14 فبراير 2021 الكاتب أرسل تقرير نشر 14 فبراير 2021 بتاريخ 1 دقيقة مضت قال سامح أشرف: إن كانت هذه الدالة homepage بداخل class فلا توجد في الكود مشكلة. إن الكود يعمل ولا يظهر مشكلة أو خطأ فهو كود سليم وليس بحاجة إلى تعديل، لكن يفضل أن يكون الكود منظم ومرتب ويحتوي على تعليقات لشرح كل الخطوات. مثال لنفس الكود بداخل class: namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Slide; use App\About; class HomeController extends Controller { public function homepage(){ $slides = Slide::all(); $about = About::whereIn('id', [1,2])->get(); return view ('front.homepage', compact('slides','about')); } } نعم هي بداخل class بالفعل بتاريخ 18 دقائق مضت قال Hafsa Aly: نعم هي بداخل class بالفعل بتاريخ 25 دقائق مضت قال Hafsa Aly: namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Slide; use App\About; public function homepage(){ $slides = Slide::all(); $about = About::whereIn('id', [1,2])->get(); return view ('front.homepage', compact('slides','about')); } هل هذا الكود صحيح اذا اردت ان اعرض من اخر السجلات الى اولها فكيف؟ 1 اقتباس
0 Hafsa Aly نشر 14 فبراير 2021 الكاتب أرسل تقرير نشر 14 فبراير 2021 هل كتابة الكود هذه صحيحه لكي اجلب السجلات من اخر الجدول الى اولها User::orderByDesc('title')->first(); اسفه اقصد التابع orderAsce () بدل من orderDesc() 1 اقتباس
0 بلال زيادة نشر 14 فبراير 2021 أرسل تقرير نشر 14 فبراير 2021 اقتباس اسفه اقصد التابع orderAsce () بدل من orderDesc() يمكنك جلب السجلات بترتيب تنازلي او أفقي عن طريق الدالة orderBy هكذا بحيث DESC تنازلياً و ASC تصاعدياً User::orderBy('title', DESC)->first(); User::orderBy('title', ASC)->first(); اقتباس
0 سمير عبود نشر 14 فبراير 2021 أرسل تقرير نشر 14 فبراير 2021 لجلب سجلات مُحددة عن طريق id النموذج مثلاً 1، 4، و 9 نقوم بإستعمال التابع find على الmodel و تمرير مصفوفة تضم المُعرفات التي نريد جلب سجلاتها: Model::find([1, 4, 9]); أي أننا إن أردنا جلب المُستخدم الأول و الثاني يُمكننا إستخدام: User::find([1, 2]); أما إن كنا نريد جلب سجلين عشوائيين يُمكن إستخدام هذه الطريق: Model::inRandomOrder()->limit(2)->get(); الفرق بين first و get أن first يجلب أول سجل يُطابق الإستعلام، أما get تجلب كل السجلات التي تُطابق الإستعلام على شكل collection، مجموعة سجلات 1 اقتباس
0 Hafsa Aly نشر 14 فبراير 2021 الكاتب أرسل تقرير نشر 14 فبراير 2021 بتاريخ 33 دقائق مضت قال عبود سمير: لجلب سجلات مُحددة عن طريق id النموذج مثلاً 1، 4، و 9 نقوم بإستعمال التابع find على الmodel و تمرير مصفوفة تضم المُعرفات التي نريد جلب سجلاتها: Model::find([1, 4, 9]); أي أننا إن أردنا جلب المُستخدم الأول و الثاني يُمكننا إستخدام: User::find([1, 2]); أما إن كنا نريد جلب سجلين عشوائيين يُمكن إستخدام هذه الطريق: Model::inRandomOrder()->limit(2)->get(); الفرق بين first و get أن first يجلب أول سجل يُطابق الإستعلام، أما get تجلب كل السجلات التي تُطابق الإستعلام على شكل collection، مجموعة سجلات هل يوجد فرق بينها وبين هذه الطريقه namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Slide; use App\About; class HomeController extends Controller { public function homepage(){ $slides = Slide::all(); $about = About::whereIn('id', [1,2])->get(); return view ('front.homepage', compact('slides','about')); } } اقتباس
0 سمير عبود نشر 14 فبراير 2021 أرسل تقرير نشر 14 فبراير 2021 بتاريخ 6 دقائق مضت قال Hafsa Aly: هل يوجد فرق بينها وبين هذه الطريقه قد تلاحظين أن في laravel هناك عدة طرق للوصول إلى ما نريد، لذلك في هذه الحالة لا يوجد فرق، whereIn تُستخدم لإنشاء الإستعلام الذي نريده و get هي التي تقوم بتطبيق الإستعلام و إرجاع النتائج، بعكس find التي تقوم بالإثنين معاً، أحياناً قد لا نريد جلب السجلات بل نريد حذفها مثلاً او إجراء عملية أخرى و في هذه الحالة لن تُساعدنا find، يُمكن إستخدامها لكن سنقوم في هذه الحالة بإجراء إستعلامات زائدة لا داعي لها. فإذا كنا نريد الحذف لماذا نجلب البيانات ما دُمنا نستطيع حذفها مُباشرة: Model::whereIn('id', [1, 2])->delete(); 1 اقتباس
0 Hafsa Aly نشر 14 فبراير 2021 الكاتب أرسل تقرير نشر 14 فبراير 2021 بتاريخ 4 دقائق مضت قال عبود سمير: قد تلاحظين أن في laravel هناك عدة طرق للوصول إلى ما نريد، لذلك في هذه الحالة لا يوجد فرق، whereIn تُستخدم لإنشاء الإستعلام الذي نريده و get هي التي تقوم بتطبيق الإستعلام و إرجاع النتائج، بعكس find التي تقوم بالإثنين معاً، أحياناً قد لا نريد جلب السجلات بل نريد حذفها مثلاً او إجراء عملية أخرى و في هذه الحالة لن تُساعدنا find، يُمكن إستخدامها لكن سنقوم في هذه الحالة بإجراء إستعلامات زائدة لا داعي لها. فإذا كنا نريد الحذف لماذا نجلب البيانات ما دُمنا نستطيع حذفها مُباشرة: Model::whereIn('id', [1, 2])->delete(); فهمت شكرا لك وعندي سؤال اخر هو كيف اجلب جميع سجلات جدول ولكن من اخر سجل الى اول سجل اقتباس
0 سمير عبود نشر 14 فبراير 2021 أرسل تقرير نشر 14 فبراير 2021 بتاريخ 4 دقائق مضت قال Hafsa Aly: فهمت شكرا لك وعندي سؤال اخر هو كيف اجلب جميع سجلات جدول ولكن من اخر سجل الى اول سجل يُمكن ذلك عن طريق: Model::latest()->get() بهذا الشكل سيتم ترتيب السجل على حسب تاريخ إنشائها أي حسب العمود created_at من الأحدث تنازلياً إلى الأقدم. إذا أردت الترتيب عن طريق عمود آخر بشكل تنازلي: Model::orderByDesc('column_name')->get(); // او Model::orderBy('column_name', "desc")->get(); أما: Model::orderBy('column_name')->get(); // او Model::orderBy('column_name', 'asc')->get(); فهما نفس الشيء و سيتم الترتيب تصاعدياً. اقتباس
0 Hafsa Aly نشر 14 فبراير 2021 الكاتب أرسل تقرير نشر 14 فبراير 2021 كيف احفظ صفحه الاجابات ع سؤالي هذه بحيث استطيع ان اراها بسهوله مرة اخرى 1 اقتباس
0 Wael Aljamal نشر 14 فبراير 2021 أرسل تقرير نشر 14 فبراير 2021 بتاريخ 5 دقائق مضت قال Hafsa Aly: كيف احفظ صفحه الاجابات ع سؤالي هذه بحيث استطيع ان اراها بسهوله مرة اخرى يمكنك مراجعة هذه الإجابة : الأسئلة القديمة حيث يمكنك عرض الأسئلة التي قُمتِ بطرحها بسهولة. اقتباس
السؤال
Hafsa Aly
هل التابع first() نفس دور get() ام انه لجلب المستخدم الاول
واذا كان لدي مثلا في جدول البيانات ثلاثة مواضيع واريد عرض اول وثاني موضوع فقط
ومرة اخرى عرض موضوعين فقط ولكن بطريقه عشوائيه
23 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.