Php Laravel-通过数据透视表访问、操作和循环
我有两个表,Php Laravel-通过数据透视表访问、操作和循环,php,arrays,laravel,laravel-5,eloquent,Php,Arrays,Laravel,Laravel 5,Eloquent,我有两个表,users和like_categories,它们具有多对多关系。pivot表被称为like\u category\u user。将两个用户数据插入db后,我的透视表如下所示: 我想计算每个用户的不同类别的金额,并将其存储在对象数组中,如下所示: [ { "User Id": 1, "Like Categories": [ { "Category": "Chinese Restaurant"
users
和like_categories
,它们具有多对多关系。pivot表
被称为like\u category\u user
。将两个用户数据插入db
后,我的透视表如下所示:
我想计算每个用户的不同类别的金额
,并将其存储在对象数组中,如下所示:
[
{
"User Id": 1,
"Like Categories": [
{
"Category": "Chinese Restaurant"
"Amount": 1
},
{
"Category": "Korean Restaurant"
"Amount": 2
},
{
"Category": "Fast Food Restaurant"
"Amount": 3
},
{
"Category": "Italian Restaurant"
"Amount": 1
},
{
"Category": "Steakhouse Restaurant"
"Amount": 3
}
]
},
{
"User Id": 2,
"Like Categories": [
{
"Category": "Thai Restaurant"
"Amount": 1
},
{
"Category": "Kebab Shop"
"Amount": 3
},
{
"Category": "Pizza Place"
"Amount": 2
},
{
"Category": "Steakhouse"
"Amount": 1
}
}
}
]
我尝试将数据库中的数据存储到基于上述格式的对象数组中。但是输出不是我想要的。
我的代码:
对象数组
我得到:
[
{
"User Id": 1,
"Like Categories": [
{
"Category": "Chinese Restaurant",
"Amount": 1
},
{
"Category": "Korean Restaurant",
"Amount": 2
},
{
"Category": "Korean Restaurant",
"Amount": 2
},
{
"Category": "Fast Food Restaurant",
"Amount": 3
},
{
"Category": "Fast Food Restaurant",
"Amount": 3
},
{
"Category": "Fast Food Restaurant",
"Amount": 3
},
{
"Category": "Italian Restaurant",
"Amount": 1
},
{
"Category": "Steakhouse",
"Amount": 3
},
{
"Category": "Steakhouse",
"Amount": 3
},
{
"Category": "Steakhouse",
"Amount": 3
}
]
},
{
"User Id": 2,
"Like Categories": [
{
"Category": "Thai Restaurant",
"Amount": 1
},
{
"Category": "Kebab Shop",
"Amount": 3
},
{
"Category": "Kebab Shop",
"Amount": 3
},
{
"Category": "Kebab Shop",
"Amount": 3
},
{
"Category": "Pizza Place",
"Amount": 2
},
{
"Category": "Pizza Place",
"Amount": 2
},
{
"Category": "Steakhouse",
"Amount": 1
}
]
}
]
如果您需要相同的输出,只需更换此
$users = User::all();
到
等待输出之间有什么区别?@AntonyMN有一些多余的键。也许是因为我的想法也许我想问的是。。。你得到的和你想要的有什么区别?也就是说,解释一下你真正想做什么,也许有一种更简单的方法,或者是一个laravel函数available@AntonyMN我已经编辑了我的帖子:)
$users = User::all();
$users = User::all()->toArray();