Laravel foreach在一个项目?

时间:2018-03-04 16:31:26

标签: php laravel laravel-5 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();

3 个答案:

答案 0 :(得分:0)

$problem=Problem::select()
            ->leftjoin('solution','problem.id','=','solution.problemid')
            ->where('solution.id',$id)
            ->get();

答案 1 :(得分:0)

您应该使用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();

答案 2 :(得分:0)

我找到了解决方案,我正在使用View:

DBMS_OUTPUT.PUT_LINE(v_emp_rec_tab(i).last_name);

对于在这里搜索相同问题的其他人是文档:

https://laravel.com/docs/5.3/blade#the-loop-variable