首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >对Laravel Api资源进行分组

对Laravel Api资源进行分组
EN

Stack Overflow用户
提问于 2018-04-08 15:20:10
回答 1查看 568关注 0票数 0

我正在尝试在Laravel 5.5中对json响应进行分组

我的表格如下

代码语言:javascript
运行
复制
+------+-------+------------------------------------------------------- 
--------------------------------------------------+
| year | month | people                                                                                                  
|
+------+-------+------------------------------------------------------- 
--------------------------------------------------+

| 2017 |    3 | 松本 知実                                                                                               
|
| 2016 |    12 | 中島 春香,中津川 充,村山 裕樹,杉山 翼,中島 春香,木村 稔                                                 
|
| 2017 |     3 | 桐山 裕太,吉本 稔,藤本 稔                                                                               
|
| 2015 |     3 | 喜嶋 学,若松 康弘,鈴木 直子,宮沢 幹                                                                     
|
| 2017 |    11 | 大垣 晃,江古田 里佳,野村 康弘,中村 美加子,喜嶋 裕太                                                     
|
| 2016 |     6 | 中島 春香,中津川 充,村山 裕樹,杉山 翼,中島 春香,木村 稔                                                       
|
| 2015 |    11 | 野村 英樹,工藤 智也,山本 七夏,青田 舞                                                                   
|

我想得到下面的json响应

代码语言:javascript
运行
复制
"2015" : {
    "3" : {
        "people" : "喜嶋 学,若松 康弘,鈴木 直子,宮沢 幹"
    },
    "11" : {
        "people" : "野村 英樹,工藤 智也,山本 七夏,青田 舞"
    },
},
"2016" : {
    "6" : {
        "people" : "中島 春香,中津川 充,村山 裕樹,杉山 翼,中島 春香,木村 稔"
    },
    "12" : {
        "people" : "中島 春香,中津川 充,村山 裕樹,杉山 翼,中島 春香,木村 稔"
    },
},
"2017" : {
    "3" : {
        [
            "people" : "松本 知実",
            "people" : "桐山 裕太,吉本 稔,藤本 稔",
        ]
    },
    "11" : {
        "people" : "大垣 晃,江古田 里佳,野村 康弘,中村 美加子,喜嶋 裕太"
    },
}

但我不能将人的数据按相同的年份和月份进行分组...我的代码在这里。

我的控制器

代码语言:javascript
运行
复制
class PublicationController extends Controller
{
    public function index()
    {
        $publications = Publication::orderBy('year', 'DESC')
            ->orderBy('month', 'DESC')
            ->get();
        return PublicationResource::collection($publications);
    }
}

和我的资源

代码语言:javascript
运行
复制
class PublicationResource extends Resource
{
    /**
     * Transform the resource into an array.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array
     */
    public function toArray($request)
    {
        return [
            $this->year => [
                $this->month => [
                    'people' => $this->people,
                ],
            ],
        ];
    }
}

但现在在我的代码中,响应如下。

代码语言:javascript
运行
复制
"2017": {
    "11": {
        "people": "大垣 晃,江古田 里佳,野村 康弘,中村 美加子,喜嶋 裕太"
    }
},
"2017": {
    "3": {
        "people": "松本 知実"
    }
},
"2017": {
    "3": {
        "people": "桐山 裕太,吉本 稔,藤本 稔"
    }
},
"2016": {
    "12": {
        "people": "中島 春香,中津川 充,村山 裕樹,杉山 翼,中島 春香,木村 稔"
    }
},
"2016": {
    "6": {
        "people": "中島 春香,中津川 充,村山 裕樹,杉山 翼,中島 春香,木村 稔"
    }
},
"2015": {
    "11": {
        "people": "野村 英樹,工藤 智也,山本 七夏,青田 舞"
    }
},
"2015": {
    "3": {
        "people": "喜嶋 学,若松 康弘,鈴木 直子,宮沢 幹"
    }
},

我想按相同的年份和月份对我的数据进行分组。

我应该如何更改我的代码?

抱歉,我是拉威尔的新手。所以请帮帮我!

EN

回答 1

Stack Overflow用户

发布于 2018-04-09 00:58:23

编辑您的控制器以

代码语言:javascript
运行
复制
class PublicationController extends Controller
{
public function index()
{
    $publications = Publication::orderBy('year', 'DESC')
        ->orderBy('month', 'DESC')
        ->get();
    return $publications->groupBy('year');
 }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49715459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档