php - 在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
这是用户表给出的。
解决方案
您可以使用 group by 来避免重复记录。它将所有重复的记录分组为一个。例如
->groupBy('THE COLUMN NAME')
请记住,您必须在使用 groupBy 之前使用“select”。
Select('THE COLUMN NAME') then groupBY ('THE COLUMN NAME')
推荐阅读
- c# - C# 在 WinForms 中将实时图表保存为 PNG
- shell - Pub Sub 消息仍在队列中但未拉取
- c++ - 更改项目的目录会破坏预编译文件的创建
- mysql - 仅当值等于某物时才使用带有 And 运算符的 Select 语句
- javascript - 是的,验证日期介于 01 01 1901 和当前系统日期之间
- java - TS7053:元素隐式具有“任何”类型,因为“字符串”类型的表达式不能用于索引类型“对象”
- angular - 您尝试使用标准 CSS 解析器解析 SCSS;在 Angular 12 更新后使用 postcss-scss 解析器重试
- c++ - Cout 在几行后停止打印(c++)
- java - 在 Java 中静态初始化 EnumMap 的最佳方法是什么
- text-files - 当文本文件有一个字符串后跟括号中的项目时,如何使用 .useDelimiter()