gpt4 book ai didi

php - 想要使用外键关系获取 Laravel 中当前登录用户的数据,但给出重复的行

转载 作者:行者123 更新时间:2023-11-29 16:45:39 25 4
gpt4 key购买 nike

我正在尝试使用 laravel 和 mysql 获取当前登录用户的数据,但我得到的结果是存储在数据库中的重复行。我有三张 table 。 users表包含id作为主键,education表包含user_id作为外键,users表的主键还有一个字段research_area。第三个表是出版物表,它也包含 user_id 作为外键。现在我试图获取当前登录用户的所有出版物,包括标题、出版年份和研究领域。我的代码正在运行,但它为我提供了表中存储数据的所有结果。我的代码在这里给出。

Controller 代码是PdfController.php

   <?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('users.id','publications.*','education.research_area')
->where('users.id',$user_id)
->get();
if(count ($data)>0){
return view('pdf/publicationpdf',$data);
}
else
{
return view('pdf/publicationpdf');
}
}

我的 View 是publicationpdf.blade.php,其代码在此处给出。

@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

我的路线就在这里。

Route::get('pdf/publicationpdf','PdfController@publicationpdf');

我不知道如何每行一次获取登录用户的所有出版物,但它给了我重复的行,我的意思是一行的三个副本,它不显示任何错误,但返回用户的重复数据。请帮忙。提前致谢

图片在这里 result of above running view

我的表格在这里给出。出版物表。 publications table

最佳答案

试试这个:您应该在用户表具有 id=logged 用户 ID 的位置添加。

<?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('users.id','publications.*','education.research_area')
->where('users.id',$user_id) // else it will get all rows
->get();
if(count ($data)>0){
return view('pdf/publicationpdf',$data)->with($user_id);
}
else
{
return view('pdf/publicationpdf');
}
}

关于php - 想要使用外键关系获取 Laravel 中当前登录用户的数据,但给出重复的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53132072/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com