Laravel, как создать Eloquent для поиска всех данных из таблицы child_category со связанной категорией и именем подкатегории?

У меня три стола:

categories table fields id, category_name   
subcategories table fields id, category_id, subcategory_name
child_categories table fields id, category_id, subcategory_id, child_category_name

У меня есть три модели категории, подкатегория,

1) => код модели категории

class Category extends model {
   public function subcategory(){
      return $this->hasMany(Subcategory::class);
   }

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

2) => Код модели подкатегории

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

3) => Код модели детской_категории

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

Как создать Eloquent для поиска всех данных из таблицы child_categories со связанной категорией и именем подкатегории?

1 ответ

Как только отношения определены, вы можете получить их, просто вызвав свойство, имя которого совпадает с нужным вам отношением.

$category = Category::first();
$subcategory = $category->subcategory;

Если вы хотите объединить все категории со всеми подкатегориями и дочерними категориями в одну строку, вы можете использовать with() способ эффективно их загружать.

$categories = Category::with(['subcategory', 'Child_category'])->get();

Это приведет к извлечению всех категорий, затем извлечет все связанные подкатегории и дочерние категории и свяжет их соответствующим образом.

Другие вопросы по тегам