首页 > 解决方案 > 在laravel中获取数据时获取重复行

问题描述

我正在尝试在获取重复行时在 laravel mysql 中获取数据。我的意思是当我得到 6 个结果时,我在数据库中有两行相同的登录用户。请帮我。我的控制器代码在这里

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use DB;
use PDF;
use Auth;

class PdfController extends Controller
{
 public function publicationpdf()
    {
        $user_id = Auth::user()->id;
        $data['data'] = DB::table('users') ->join('publications', 'users.id', '=', 'publications.user_id') ->join('education', 'users.id', '=', 'education.user_id') ->select('publications.*','education.research_area') ->where('users.id',$user_id)
            ->get();
        if(count ($data)>0){
            return view('pdf/publicationpdf',$data);
        }
        else
        {
            return view('pdf/publicationpdf');
        }
    }
}

我的视图代码在这里我试图获取数据。

@extends('layouts.app')
@section('content')
<div class="container"><br>


    <h4>Name: {{ Auth::user()->tname }}</h4>



    <div class="text-center">
        <h3>Publications Details</h3>
    </div><br/>
    <table class="table">
        <tr>
            <th>
                Publication Title
            </th>
            <th>Research Area</th>
            <th>Publication Year</th>
        </tr>
        @foreach($data as $value)
        <tr>
            <td>{{$value->title}}</td>

            <td>{{$value->research_area}}</td>

            <td>{{$value->year}}</td>
        </tr>
        @endforeach

    </table>


</div>

@endsection

此处给出了生成的数据图片。您可以在此处查看重复的行。 视图或查询运行的结果

所有三个表都给出了我想加入两个表出版物和教育教育表的地方 教育表

这是发布表 发布表

这是用户表给出的。

用户表

标签: phpmysqllaravel

解决方案


您可以使用 group by 来避免重复记录。它将所有重复的记录分组为一个。例如

->groupBy('THE COLUMN NAME')

请记住,您必须在使用 groupBy 之前使用“select”。

Select('THE COLUMN NAME') then groupBY ('THE COLUMN NAME')

推荐阅读