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

السؤال

نشر

لدي جدول في قاعدة البيانات:

CREATE TABLE `about` (
`id` int(10) UNSIGNED NOT NULL,
`title` varchar(500) COLLATE utf8_unicode_ci NOT NULL,
`content` text COLLATE utf8_unicode_ci,
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

وأحاول تمرير البيانات إلى الوجهة عن طريق المتحكم الخاص بها:

public function index()
{
    $about = Page::where('page', 'about-me')->get(); //id = 3

    return view('about', compact('about'));
}

ضمن blade:

@section('title')
    {{$about->title}}
@stop

@section('content')
    {!! $about->content !!}
@stop

ولكن عند التوجه للصفحة يظهر لدي الخطأ التالي:

Property [title] does not exist on this collection instance.

ما الخطأ في ذلك؟

Recommended Posts

  • 0
نشر

المشكلة بسبب get فهي تعيد مجموعة من السجلات بدل من سجل واجد، ويمكنك إجراء حلقة للمرور على هذه السجلات كما تم الشرح في التعليقات.

ولكن في حال كانت البيانات المراد تمريرها هي لسجل واحد (أي لا وجود لعدة سجلات) لا داعي لاستخدام الحلقات. يمكنك تغيير الاستعلام وإضافة first وعندها سيتم استعادة أول سجل ويتم قصره ليصبح سجل واحد بدلاً من مجموعة بالشكل التالي:

$about = Page::where('page', 'about-me')->first();

 

  • 0
نشر

إن كان الهدف هو إرجاع سجل واحد فالأفضل إستخدام التابع find او first او findOrFail او firstOrFail لأن get تُعيد مجموعة سجلات حتى و لو كانت النتيجة هي سجل واحد فستُعيد السجل بداخل مصفوفة:

$about = Page::where('page', 'about-me')->first();

$about = Page::where('page', 'about-me')->firstOrFail(); // إرجاع الصفحة 404 في حالة عدم وجود أي سجل

$about = Page::find(3); // إبحث عن السجل ذو المعرف 3

$about = Page::findOrFail(3); // إرجاع الصفحة 404 في حالة عدم وجود أي سجل

 

 

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...