laravel - 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 表中存储的所有数据。当我查询数据库的品种类型时,它显示关系但值为空。我想获得宠物类型的名称以及宠物品种,因为我们有关系。
但它仍然无法正常工作,请指导我在哪里犯了错误。
解决方案
根据您当前的表结构:
宠物模型
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);
}
推荐阅读
- android - 未启用提示的垂直居中 TextInputLayout 文本
- reactjs - Why is my "sign in with google" (firebase + React) but not working when I deploy to AWS
- reactjs - 使用 Material UI 更改复选框的大小
- python - 烧瓶中指定的变量未显示在 git 页面中
- javascript - onEndReached on flatlist invoked endless [React Native]
- javascript - 无法正确测试正确的组件是否基于作为**组件**传递到 App.js 中的路由呈现,使用酶和玩笑反应?
- c# - C# regex to find all the terms that start with @ but ignoring terms with white space
- windows - Find-Package 有效,但 Install-Package 在 powershell 中使用巧克力仅显示 nuget 错误
- python - 来自新程序员的关于 python 类和变量的基本问题
- javascript - 在我的情况下如何在数组中添加新对象