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刀片中的foreach jQuery对象

Laravel foreach 每个项目增加 3

需要一种有效的方法来避免使用 Laravel 5 重复代码片段

如何在刀片模板的 foreach 循环中访问 laravel 集合?

在 laravel 的 foreach 循环中修改当前对象