اذهب إلى المحتوى

السؤال

نشر
return sections::find(1)->bank;
هذا الاستعلام يجيب لي القسم والبنوك التابعه له 
لاكن احيانا مايكون مثلا رقم 1 هو الفرع المطلوب 
كيف اخلي الاستعلام يصير باسم القسم زي الكود تحت 
لانه حطيته يطلع خطا 


return sections::where("section_name","==","البنوك")->bank;

 

Recommended Posts

  • 0
نشر

لفعل ذلك يجب ان نقوم بتمرير معامل مع المسار الذي نسجله في ملف web.php, على سبيل المثال ليكن كذلك شكل المسار

Route::get('/categories/{id}', 'CategoriesController@show')->name('categories.show');
                        ^^^^

لاحظي id الموجودة بين الأقواس المعكوفة, هذا عبارة عن معامل, وأيضا المسار يستدعي التابع show من المتحكم CategoriesController, الآن لو أردت ان استخدم هذا المسار فسوف يكون على الشكل التالي, على فرض أننا نقوم بعمل حلقة تكرار لعرض جميع الأقسام ,

@foreach($categories as $category)
	<a href="{{ route('categories.show', $category->id) }}">show</a>
                                              ^^^^^^^^^^^^^
@endforeach

كما تلاحظي لقد قمت باستخدام المسار الذي سجلته في ملف web.php وأيضا قمت بتمرير المعامل له, الآن سوف نذهب الى التابع show في المتحكم CategoriesController, للحصول على المعلومات الخاصة بالقسم سوف يكون كالتالي


    public function show($id)
    {
         return $category=Categories::find($id)
    }

وبهذا سوف تحصلين على بيانات القسم, يمكنك تغيير الرقم الى اسم بنفس الطريقة ولكن بدل من تمرير ال id تقومين بتمرير اسم القسم, على سبيل المثال ليكن شكل الكود كالتالي

Route::get('/categories/{name}', 'CategoriesController@show')->name('categories.show');
                        ^^^^

ثم 

@foreach($categories as $category)
	<a href="{{ route('categories.show', $category->name) }}">show</a>
                                              ^^^^^^^^^^^^^
@endforeach

ثم في التابع show

    public function show($name)
    {
         return Categories::where('name', $name)->first();
    }

 

  • 1
نشر

لا يمكن قراءة خاصية من التابع where مباشرة على هذا النحو : 

return sections::where("section_name","==","البنوك")->bank;

و في حالة المحاولة سيتم إظهار خطأ يتم فيه إخبارك أن الخاصية bank غير موجودة .

قبل ذلك نحتاج تنفيذ الإستعلام الذي قمنا للتو ببناءه عن طريق أحد التوابع get أو first : 

$first = sections::where("section_name","==","البنوك")->get();

$second = sections::where("section_name","==","البنوك")->first();

الأولى ستقوم بإعادة مجموعة كائنات كل منها يمتلك الخاصية bank و بالتالي و للقراءة منها نحتاج عمل دور على عناصر المجموعة على هذا النحو : 

foreach($first as $item){
   
   echo $item->bank;

}

أما بالنسبة للثانية فهي سوف تقوم بإعادة أول كائن يحقق الإستعلام و يمكن قراءة الخاصية مباشرة منه : 

$second->bank

أو : 

return sections::where("section_name","==","البنوك")->first()->bank;

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...