Laravel France

Tableaux qui affiche nos utilisateurs

Avatar de AlternantLaravel
AlternantLaravel

Bonjour,

Je suis débutant sur Laravel, suite a la création d'un formulaire d'inscription, d'authentification, après l'authentification, nous l'utilisateurs est renvoyé vers une vue, je voudrai que cette vue affiche un tableaux qui contient tous les utilisateurs inscrits. Ma table dans la base de données s'apelle utilisateurs, j'ai donc fais

public function afficher()

            {
                $utilisateurs = DB::table('utilisateurs')->get();

                return view('mon_compte', ['utilisateurs' => $utilisateurs]);
                foreach ($utilisateurs as $utilisateurs) {
                echo $utilisateurs->nom;
                return view('mon_compte', ['utilisateurs' => $utilisateurs]);

}

Et ma page web.php contiens :

Route::view('/','Contact');
Route::post('/inscription','InsertClientController@insertClient_heliop'); // insertion base de donnée 
Route::get('/connexion', 'ConnexionController@formulaire'); // authentification
Route::post('/connexion', 'ConnexionController@afficher');
Route::get('/mon_compte', 'CompteController@accueil', ); // page personnel 
Route::get('/deconnexion', 'CompteController@deconnexion');
Route::view('/test','administrateur');
//Route::post('/test','AdminController@traitement');

Auth::routes();

Route::get('/home', 'HomeController@index')->name('home');

Mais rien ne s'affiche

Avatar de CinquièmeDimension
CinquièmeDimension

Salut,

Plus simple que ton $utilisateurs = DB::table('utilisateurs')->get(); il y a $utilisateurs = Utilisateurs::all(); (Auquel cas il faut ajouter un Use App/Utilisateurs; au début de controller pour se rattacher à ton model Utilisateurs.)

  • Première remarque, ais bien en tête qu'un return met fin à ta fonction. Tout ce qui se passe après ne sera pas exécuté.
  • Deuxième remarque, on ne fait pas un return dans un foreach, pour la même raison, cela ne bouclera jamais.
  • Troisième remarque, $utilisateurs as $utilisateurs n'est pas possible. Tu n'as pas d'erreur parce que ton premier return empêche ce code d'être exécuté mais il ne faut pas que les deux variables ait le même nom. Tu peux, par exemple, enlever le S de utilisateurs dans ton as $utilisateurs.
  • Quatrième remarque, tu as peut-être confondu la vue mon_compte avec la route du même nom. Je ne sais pas. SI ce n'est pas le cas, peut-tu nous poster ta vue mon_compte.blade.php ?
Avatar de AlternantLaravel
AlternantLaravel

Merci pour ton retour ! Les remarques m'aident enormément, j'ai réussi a afficher les données de ma base en suivant vos cosneils, mais ca ne s'affiche pas sur la vue mon_compte.blade.php

<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">

@extends('layout')

@section('contenu')
    <div class="section">
        <h1 class="title is-1">Mon compte</h1>

        <p>Vous êtes bien connecté.</p>
        

       
    </div>
    <a href="/deconnexion" class="button">Déconnexion</a>
    </div>
@endsection

mais sur la page connexion elle même ...

Avatar de AlternantLaravel
AlternantLaravel

Il faudrait peut-être que je crée un tableaux dans la vue, pour que les données s'insére plus proprement ?

Avatar de micraux
micraux

Bonjour,

En fait, tu dois mettre ta boucle dans ta vue et non pas dans ton contrôleur, juste après ton <p>Vous êtes bien connecté.</p>

Par exemple :

foreach ($utilisateurs as $utilisateur) {
    echo $utilisateurs->nom;
}

ou avec Blade :

@foreach ($utilisateurs as $utilisateur)
    {{ $utilisateur->name }}
@endforeach

Vous ne pouvez pas répondre à ce sujet.