Laravel 5 使用不同的语言建立拉威尔雄辩的关系

Laravel 5 使用不同的语言建立拉威尔雄辩的关系,laravel-5,eloquent,group-by,relationship,distinct,Laravel 5,Eloquent,Group By,Relationship,Distinct,我需要使用DISTINCT显示具有关系的数据 这是我的sql数据: 桌上口袋 id | 49 | id | formateurs_id | pochettes_id 1 | 3 | 49 2 | 4 | 49 3 | 3 | 49 id | 3 | 4 | 表格日志记录者 id | 49 | id | formateurs_id | pochettes_id 1 | 3 |

我需要使用DISTINCT显示具有关系的数据

这是我的sql数据:

桌上口袋

id | 
49 |
id | formateurs_id | pochettes_id
1  | 3             | 49
2  | 4             | 49
3  | 3             | 49
id | 
3  |
4  |
表格日志记录者

id | 
49 |
id | formateurs_id | pochettes_id
1  | 3             | 49
2  | 4             | 49
3  | 3             | 49
id | 
3  |
4  |
表格格式化程序

id | 
49 |
id | formateurs_id | pochettes_id
1  | 3             | 49
2  | 4             | 49
3  | 3             | 49
id | 
3  |
4  |
Pochette型号

模型日志

我使用这段代码来显示具有不同格式化程序的数据,因为格式化程序可以在同一个Pochette中有许多日志:

$pochette = Pochette::find(49);
foreach ($pochette->Journees->distinct('formateurs_id') as $formateur) {
            echo $formateur->formateurs_id;
            echo "<br>";
        }
我将展示这个结果:

3
4
不是:

3
4
3

当你接触到一段有说服力的关系,比如一处房产时,你会得到一份工作。但是,
distinct()
是一种方法,您需要在返回集合之前访问查询生成器实例。如果将
()
添加到关系的末尾,则可以访问查询生成器实例,并可以链接这些查询生成器方法。在您的例子中,您实际上是在寻找
groupBy()
方法,而不是
distinct()
。不要忘记使用
get()
结束查询

foreach($pochette->Journees()->groupBy('formatters_id')->get()作为$formatter){
echo$formatter->id;
回声“
”; }
@Ayedmedamine那么您要查找的是
groupBy()
,而不是
distinct()
。我已经更新了answer.Add()以访问查询生成器,这是我从未知道的事情。你不认为它甚至在文件里吗?