Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel-通过数据透视表访问、操作和循环_Php_Arrays_Laravel_Laravel 5_Eloquent - Fatal编程技术网

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();