ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

php – Laravel 5.4 Eloquent查询

2019-07-01 19:16:41  阅读:145  来源: 互联网

标签:php laravel laravel-5 eloquent laravel-5-4


我有一个模特:
播放器,
玩,
下载,
跟踪

关系:

Player has many Play and Download
Play and Download belongs to Player
Track has many Play and Download

我正在尝试查找一个查询,该查询为我提供了一个Track的对象列表:

Track 
--Player
----Plays
----Downloads
--Player
----Plays
----Downloads
--Player
----Plays
----Downloads

我在vuejs数据表组件中使用它:

<data-tables
    :data='data.players' 
    >
    <el-table-column 
      prop="place_title">
    </el-table-column>
    <el-table-column
      prop="plays.length">
    </el-table-column>
    <el-table-column
      prop="downloads.length">
    </el-table-column>
</data-tables>

如果groupBy可以使用Eloquent对象键,那么它几乎就是我需要的:

$plays = $track->plays()->whereYear('created_at', $year )->whereMonth( 'created_at', $month )->with('player')->get();
$players = $plays->groupBy('player');

但是groupBy使用字符串键,因此在我的问题中没用.

解决方法:

如果没有关于plays()方法和其他方法的更多信息,我可以说最好的是你发布的代码不起作用,因为$plays是一个集合.尝试这样做(在这种情况下,$plays是一个Query Builder对象):

$plays = $track->plays()->whereYear('created_at', $year )->whereMonth( 'created_at', $month )->with('player');
$players = $plays->groupBy('player')->get();

标签:php,laravel,laravel-5,eloquent,laravel-5-4
来源: https://codeday.me/bug/20190701/1349758.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有