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

العلاقات في لارافيل

Mohammed Abu Yousef

السؤال

Recommended Posts

  • 1

يمكنك إنشاء استعلام يمكنك من خلاله جلب بيانات التصنيف بهذه الطريقة 

$sql = mysqli_query($connection, "SELECT * FROM category WHERE id = $category_id");

هذا استعلام عادي في PHP  

أو من خلال laravel يمكنك إنشاء علاقة بين جدول posts , categorys  بحيث كل تصنيف لديه عدة منشورات و تكون العلاقة في ملفي Model الخاص بالجدولين و لنفرض أن جدول posts لديه ملف Post.php و جدول categories لديه ملف Category.php فالعلاقة ستكون باسم hasMany أي كل تصنيف يملك أكثر من منشور و في ملف Category.php يمكنك إضافة العلاقة التالية 

public function posts(){
        return $this->hasMany(Post::class);
}

وملف Post.php يحتوي على التالي 

public function category(){
    return $this->belongsTo(Category::class);
}

وخلال الاستعلام يمكنك جلب هذه العلاقة بهذه الطريقة 

$posts = Post::with('category')->get();

أي قمنا من خلال with جلب العلاقة category و يمكنك جلب أكثر من علاقة بهذا الشكل 

$posts = Post::with('category', 'اسم العلاقة الثانية')->get();

و من ثم يمكنك إنشاء حلقة تكرار بحيث تقوم بجلب المنشورات ومن خلال العلاقة category يمكنك الوصول إلى بيانات جدول categories بهذا الشكل 

@foreach($posts->category() as $category)
	<h3>{{ $category->name ?? '' }}</h3>
@endforeach

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

بداية يجب أن نحصل على الcategary وعلى جميع بياناته كالتالي

$categary=Category::find($post->categary_id);

بعد ذلك يمكنك الوصول لجيمع بيانات هذا categary فمثلا لو أردت الحصول على اسمه يمكنك ذلك من خلال الكود التالي

$categary->name

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...