首页 > 解决方案 > laravel 7中的一对多关系

问题描述

据我所知,我有三个要关联的表,它们有一对多的关系

宠物桌
ID
宠物名
pet_type_id
宠物类型表
ID
宠物类型
品种表
ID
品种
pet_type_id

    
1. Pet Type has many breeds
2. Breeds belongs to Pet Type
3. Pet Type has many Pets
4. Pet belongs to many pet types

我在 laravel 中创建了以下关系

宠物模型

public function breed_type()
{
   $this->belongsTo(PetType::class);
}

宠物类型模型

public function breed()
{
   $this->belongsTo(Breed::class);
}

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

品种模型

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

我想向用户显示一个表格,将有一个下拉菜单显示宠物的类型,并在宠物类型的基础上填充另一个下拉菜单,其中将显示上述宠物类型的所有品种。然后表单中的所有数据都将保存在 Pets Table 中。

现在我想显示 Pets 表中存储的所有数据。当我查询数据库的品种类型时,它显示关系但值为空。我想获得宠物类型的名称以及宠物品种,因为我们有关系。

但它仍然无法正常工作,请指导我在哪里犯了错误。

标签: laravel

解决方案


根据您当前的表结构:

宠物模型

public function pet_type()
{
  $this->belongsTo(PetType::class);
}

宠物类型模型

public function breed()
{
   $this->hasMany(Breed::class);
}

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

品种模型

public function petType()
{
    return $this->belongsTo(PetType::class);
}

推荐阅读