Laravel foreach在一个项目?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel foreach在一个项目?相关的知识,希望对你有一定的参考价值。
我有一种关系
+------------+---------+
| id | problem |
+------------+---------+
| 1 | problem |
+------------+---------+
+------------+----------+---------+
| id | problemid|solution |
+------------+----------+---------+
| 1 | 1 |solution1|
+------------+----------+---------+
| 2 | 1 |solution2|
+------------+----------+---------+
我已经做了一个连接,问题是当我在视图中做一个foreach我得到2个具有相同问题的项目和2个不同的解决方案但我需要得到相同的问题(一个问题)和2个解决方案。我该怎么做?
这是Controller中的代码:
$problem=Problem::select()
->join('solution','problem.id','=','solution.problemid')
->where('problem.id',$id)
->get();
答案
$problem=Problem::select()
->leftjoin('solution','problem.id','=','solution.problemid')
->where('solution.id',$id)
->get();
另一答案
您应该使用GROUP_CONCTAT函数
编辑:现在是正确的:D
DB::select('problem.*','solution.*')
->addSelect(DB::raw('GROUP_CONCAT(solution.solution)'))
->from('problem')
->join('solution', function($join) {
$join->on('problem.id', '=', 'solution.problemid');
})
->get();
另一答案
我找到了解决方案,我在View中使用:
@foreach ($problem as $probl)
@if ($loop->first)
Here i put the code for fist item
@endif
@endforeach
对于另一个在这里搜索相同问题的人是文档:
https://laravel.com/docs/5.3/blade#the-loop-variable
以上是关于Laravel foreach在一个项目?的主要内容,如果未能解决你的问题,请参考以下文章
在刀片 laravel 中多次防止 foreach 循环 html 标记
需要一种有效的方法来避免使用 Laravel 5 重复代码片段