我有两个表:1.类别,2.项目
Categories.php
____________
id | name
___|________
1 | shirt
2 | shoes
Items.php
__________________________
id | categories_id | name
___|_______________|______
1 | 1 | casual
2 | 1 | dress
3 | 2 | leather
4 | 2 | jogar
现在,我想使用口才关系获取两个表的数据。
所需的数组:
[
'name' => 'shirts',
'items' => ['casual', 'dress']
],
[
'name' => 'shoes',
'items' => ['leather', 'jogar']
]
答案 0 :(得分:2)
首先,您需要定义自己的关系。
从您的数据库结构看,一个Category
似乎有许多Items
。因此,在这种情况下,它可以是One-to-Many或Many-to-many关系。我将在这个答案中去第一个。
现在,在模型中定义关系。
Category.php
public function items()
{
return $this->hasMany(Item::class);
}
Items.php
public function category()
{
return $this->belongsTo(Category::class);
}
现在,在查询结果时,您可以简单地使用with()
方法来eager load关系项
// Perform your query and load the relationship
$categories = Category::with('items')->get();
或load()
到lazy eager loading相关项目。
// Perform your query
$categories = Category::all();
// load the related items
$categories->load('items');
答案 1 :(得分:0)
链接到文档:Eloquent Relationships。
在您的 Items.php
中public function category()
{
return $this->belongsTo('App\Categories', 'foreign_key');
}
从此开始使用:
$items = new Items;
$category = $items->category;
答案 2 :(得分:0)
制作模型后的类别和项目 您可以转到“类别”控制器并通过
从“类别”获取数据$cat = Category::all();
别忘了添加
use App\Category;
和同样的东西,如果您想要Item, 最好的问候