我正在获取重复行时尝试在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
这是用户表给。
答案 0 :(得分:0)
当您与多个表联接时,您必须在查询中使用 Group By 。这将为您提供联接表的重复数据。