如何解决在Laravel视图中显示联合表中的数据
我的学校项目有问题,该项目是一个网站,您可以在其中获取有关vidéo游戏的信息(名称,游戏的封面和发行日期),如果以后要玩,只需将其添加到列表中甚至即使您想添加已经完成的游戏,这也是一个简单的图书馆应用。为了将游戏添加到列表中,您需要进入游戏所在的页面,并通过简单的按钮将其添加到列表中。
现在,我恢复了应用程序功能,让我解释一下该网站的工作原理。
该网站是使用laravel 6构建的,除了一个功能外,我想实现的所有功能都可以正常运行,从而将游戏添加到您的列表中。将游戏添加到您的列表中很好,但是在数据库方面,但是我的问题是我无法显示添加到“配置文件”页面中的游戏列表。
这是我的名为utilisateurs https://ibb.co/pLFgDVt的用户表。
这是名为listes https://ibb.co/16vhzDb的列表表。
我在两个表中使用utilisateur_id进行联接,该utilisateur_id对应于utilisateurs表中的用户ID。 (当您登录并单击添加按钮时,它将获取已登录用户的用户ID并将其保存在表“列表”中。)
一切正常,但我没有成功显示用户添加到他的列表中的游戏。
这是我的代码:
-我的CompteController.php用于配置文件页面(显示配置文件img,名称和注销按钮)。
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class CompteController extends Controller
{
public function accueil() {
if(auth()->guest()) {
return redirect('/connexion')->withErrors([
'email' => "Vous devez être connecté pour voir cette page."
]);
}
$titre = "Profil";
return \view('profile',['titre' => $titre]);
}
public function deconnexion () {
auth()->logout();
return redirect('/');
}
public function update_avatar(Request $request){
$request->validate([
'avatar' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:10240',]);
$utilisateur = Auth::user();
$avatarName = $utilisateur->id.'_avatar'.time().'.'.request()->avatar->getClientOriginalExtension();
$request->avatar->storeAs('avatars',$avatarName);
$utilisateur->avatar = $avatarName;
$utilisateur->save();
return back()
->with('success','You have successfully upload image.');
}
}
-ListeController.php(当您单击此按钮并将其添加到“列表”表https://ibb.co/XDPPkCP时,函数“ ajout”将获得游戏名称和登录用户的ID)。
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use App\Liste;
class ListeController extends Controller
{
public function ajout(){
$liste = new Liste();
$liste->nom = request('nom');
$liste->utilisateur_id = Auth::id();
$liste->save();
return redirect('/prochainement');
}
}
正如我已经说过的,在数据库中添加数据是可行的。
这是我的迁移文件,因此您可以看到我如何设置数据库:
-迁移实用程序表:
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateUtilisateursTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('utilisateurs',function (Blueprint $table) {
$table->bigIncrements('id');
$table->varchar('pseudo');
$table->varchar('avatar');
$table->string('email')->unique();
$table->string('mot_de_passe');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('utilisateurs');
}
}
-“迁移列表”表:
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateListeTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('listes',function (Blueprint $table) {
$table->bigIncrements('id');
$table->text('nom');
$table->integer('utilisateur_id');
$table->boolean('statut');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('liste');
}
}
这是“概要”页面的视图:
@extends('layout')
@section('container')
<section id="profile">
<div class="bloc">
<h2>Mon Profil</h2>
<img src="img/soulignement.png" alt="" class="soulignement">
<div>
<h3>{{ Auth::user()->pseudo }}</h3>
<img src="storage/avatars/{{ Auth::user()->avatar }}" class="imageProfil"> <br>
<div id="centrageBouton">
<div class="tooltip"> <button class="boutons btnBasique" id="image-profil"><span><i
class="fas fa-upload"></i></span></button> <span class="tooltiptext">Changer d'image de profil</span>
</div>
</div><br>
<div class="formulaire-image">
<form action="/mon-compte" method="post" enctype="multipart/form-data" id="formulaireUpload">
@csrf
<input type="file" size="60" class="boutonUpload " name="avatar" id="avatarFile" >
<button type="submit" class="btn btn-primary" id="boutonEnvoie">Submit</button>
</form>
</div><br>
<div class="bloc-aligner">
<button class="boutons btnBasique"><span>Changer mon MDP</span></button>
<button class="boutons btnBasique"> <a href="/deconnexion"><span> Déconnexion</span></a></button>
</div>
</div>
<div id="mesJeux">
<h3>Mes Jeux</h3>
<img src="img/soulignement.png" alt="" class="soulignement">
<table>
<tr>
<td>Nom</td>
<td>Statut</td>
<td>Actions</td>
</tr>
<tr>
<td>The Legend of Zelda: Breath of the Wild</td>
<td>finis</td>
<td><button class="boutons btnBasique"><span>finis</span></button> <br><button
class="boutons btnBasique"><span>à finir</span></button></td>
</tr>
</table>
</div>
</div>
</section>
<script src="js/Main.js"></script>
<script src="js/AffichageBoutonForm.js"></script>
@endsection
现在我的问题是,我该如何在用户登录时和在其个人资料页面上的“列表”表中显示数据库中添加的游戏名称。
对不起,如果我不清楚,英语不是我的母语,并且我有点疲倦,因为我几乎整天都在搜索此内容。
如果你们需要补充信息,请告诉我,我会给您。
谢谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。