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 بتاريخ On 14/2/2021 at 13:17 قال سامح أشرف: التابع 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 بتاريخ On 14/2/2021 at 13:31 قال 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 بتاريخ On 14/2/2021 at 13:37 قال سامح أشرف: يمكن إستخدام التابع 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 بتاريخ On 14/2/2021 at 13:48 قال 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 بتاريخ On 14/2/2021 at 13:52 قال بلال زيادة: $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 بتاريخ On 14/2/2021 at 14:14 قال 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 بتاريخ On 14/2/2021 at 14:17 قال بلال زيادة: لا داعي للكود التالي $aboutus = About::all(); الثاني يعمل بشكل صحيح مع تغيير $aboutus إلى اسم المودل هكذا $about =About::whereIn('id', [1,2])->get(); أظهر المزيد ولكن انا اريد كل السجلات الموجوده في الموديل في مرة وفي مرة اخرى اريد سجلين فقط اقتباس
0 بلال زيادة نشر 14 فبراير 2021 أرسل تقرير نشر 14 فبراير 2021 بتاريخ On 14/2/2021 at 14:21 قال Hafsa Aly: ولكن انا اريد كل السجلات الموجوده في الموديل في مرة وفي مرة اخرى اريد سجلين فقط أظهر المزيد هل هكذا $aboutus = About::all(); $about =About::whereIn('id', [1,2])->get(); يمكنك استخدام كل استعلام بشكل منفصل. اقتباس
0 Hafsa Aly نشر 14 فبراير 2021 الكاتب أرسل تقرير نشر 14 فبراير 2021 بتاريخ On 14/2/2021 at 14:22 قال بلال زيادة: هل هكذا $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 بتاريخ On 14/2/2021 at 14:53 قال 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 بتاريخ On 14/2/2021 at 14:53 قال 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 بتاريخ On 14/2/2021 at 14:59 قال سامح أشرف: إن كانت هذه الدالة 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 بالفعل بتاريخ On 14/2/2021 at 15:00 قال Hafsa Aly: نعم هي بداخل class بالفعل أظهر المزيد بتاريخ On 14/2/2021 at 14:53 قال 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 بتاريخ On 14/2/2021 at 16:12 قال عبود سمير: لجلب سجلات مُحددة عن طريق 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 بتاريخ On 14/2/2021 at 16:46 قال Hafsa Aly: هل يوجد فرق بينها وبين هذه الطريقه أظهر المزيد قد تلاحظين أن في laravel هناك عدة طرق للوصول إلى ما نريد، لذلك في هذه الحالة لا يوجد فرق، whereIn تُستخدم لإنشاء الإستعلام الذي نريده و get هي التي تقوم بتطبيق الإستعلام و إرجاع النتائج، بعكس find التي تقوم بالإثنين معاً، أحياناً قد لا نريد جلب السجلات بل نريد حذفها مثلاً او إجراء عملية أخرى و في هذه الحالة لن تُساعدنا find، يُمكن إستخدامها لكن سنقوم في هذه الحالة بإجراء إستعلامات زائدة لا داعي لها. فإذا كنا نريد الحذف لماذا نجلب البيانات ما دُمنا نستطيع حذفها مُباشرة: Model::whereIn('id', [1, 2])->delete(); 1 اقتباس
0 Hafsa Aly نشر 14 فبراير 2021 الكاتب أرسل تقرير نشر 14 فبراير 2021 بتاريخ On 14/2/2021 at 17:08 قال عبود سمير: قد تلاحظين أن في laravel هناك عدة طرق للوصول إلى ما نريد، لذلك في هذه الحالة لا يوجد فرق، whereIn تُستخدم لإنشاء الإستعلام الذي نريده و get هي التي تقوم بتطبيق الإستعلام و إرجاع النتائج، بعكس find التي تقوم بالإثنين معاً، أحياناً قد لا نريد جلب السجلات بل نريد حذفها مثلاً او إجراء عملية أخرى و في هذه الحالة لن تُساعدنا find، يُمكن إستخدامها لكن سنقوم في هذه الحالة بإجراء إستعلامات زائدة لا داعي لها. فإذا كنا نريد الحذف لماذا نجلب البيانات ما دُمنا نستطيع حذفها مُباشرة: Model::whereIn('id', [1, 2])->delete(); أظهر المزيد فهمت شكرا لك وعندي سؤال اخر هو كيف اجلب جميع سجلات جدول ولكن من اخر سجل الى اول سجل اقتباس
0 سمير عبود نشر 14 فبراير 2021 أرسل تقرير نشر 14 فبراير 2021 بتاريخ On 14/2/2021 at 17:14 قال 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 بتاريخ On 14/2/2021 at 20:27 قال Hafsa Aly: كيف احفظ صفحه الاجابات ع سؤالي هذه بحيث استطيع ان اراها بسهوله مرة اخرى أظهر المزيد يمكنك مراجعة هذه الإجابة : الأسئلة القديمة حيث يمكنك عرض الأسئلة التي قُمتِ بطرحها بسهولة. اقتباس
السؤال
Hafsa Aly
هل التابع first() نفس دور get() ام انه لجلب المستخدم الاول
واذا كان لدي مثلا في جدول البيانات ثلاثة مواضيع واريد عرض اول وثاني موضوع فقط
ومرة اخرى عرض موضوعين فقط ولكن بطريقه عشوائيه
23 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.