IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Laravel PHP Discussion :

Question sur les layouts et boucle foreach


Sujet :

Laravel PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de legrandse
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Décembre 2010
    Messages
    354
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Décembre 2010
    Messages : 354
    Par défaut Question sur les layouts et boucle foreach
    Bonjour à tous,

    Je débute sur Laravel et j'ai un soucis de compréhension sur les layouts.

    Je dispose d'un "master.blade" dans le dossier layouts.
    Ce fichier contient un menu qui doit afficher une boucle foreach.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    @foreach($house as $houses)
       {{ $houses->name  }}
    @endforeach
    Ensuite j'ai un fichier "home.blade" qui reprend le layout "master.blade"
    Dans cette page home, je crée une table avec une boucle foreach.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    @foreach($booking as $bookingList)
       {{ $bookingList->id  }}
    @endforeach
    Les modèles sont bien crées dans /App

    Je crée un contrôleur intitulé HomeController qui me retourne la vue "home" ainsi que le contenu de booking:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    namespace App\Http\Controllers;
    use Illuminate\Support\Facades\DB;
    use Illuminate\Http\Request;
     
    class HomeController extends Controller
    {
     
     
    	public function booking()
    	{
    		$booking = DB::table('booking')->get();
     
    		return view('home', [ 'booking'=>$booking ]);
     
    	}
    }
    et ma route comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Route::get('/home', 'HomeController@booking')->name('home');
    Question:
    Comment afficher le contenu de la boucle de mon layout (master.blade) ? Avec un controller également comme pour $booking ? et quelle est la route dans ce cas ?

    Désolé si cela semble évident pour vous mais c'est confus chez moi

    Merci pour votre aide

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Bonjour,
    Dans la méthode booking :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public function booking()
    	{
    		$booking = DB::table('booking')->get();
     
    		return view('home', [ 'booking'=>$booking ]);
     
    	}
    Vous appelez une vue home et cette vue appelle votre layout.
    Mais dans ce cas vous ne passez pas à la vue la variable $housse, vous ne passez que $booking.
    Vous devez passer le contenu de chaque vue que vous appellez, dans ce cas-ci quelque chose du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public function booking()
    	{
    		$booking = DB::table('booking')->get();
                    $housse = DB::table('housse')->get();
                    return view('home', concact('booking','housse'));
     
    	}

  3. #3
    Membre éclairé Avatar de legrandse
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Décembre 2010
    Messages
    354
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Décembre 2010
    Messages : 354
    Par défaut
    Ok merci pour l'info.

    Mais dans le cas où toutes mes vues utilisent le même layout n'y a t-il pas moyen d'éviter de recopier systématiquement le bout de code qui affiche les données dans celles-ci ?

  4. #4
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Je dirais que le plus rapide est de la géré dans la classe app/Controller/Controller.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    class Controller extends BaseController
    {
        use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
     
        public function __construct()
        {
            View::share('housse',DB::table('housse')->get());
        }
    }

  5. #5
    Membre éclairé Avatar de legrandse
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Décembre 2010
    Messages
    354
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Décembre 2010
    Messages : 354
    Par défaut
    Merci.

    J'ai essayé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    namespace App\Http\Controllers;
     
    use Illuminate\Foundation\Bus\DispatchesJobs;
    use Illuminate\Routing\Controller as BaseController;
    use Illuminate\Foundation\Validation\ValidatesRequests;
    use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
     
     
    class Controller extends BaseController
    {
        use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
     
        public function __construct()
        {
            View::share('houseList',DB::table('houses')->get());
        }
     
    }
    avec ceci dans mon layout:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <h6 class="collapse-header">Liste:</h6>
    @foreach($houseList as $houses)
    <a class="collapse-item" href="/admin/bookings">{{ $houses->name }}</a>
    @endforeach
    Mais il me renvoi ceci:
    Undefined variable: houseList

    Je ne vois pas ce qui ne fonctionne pas

  6. #6
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Déjà il manque la façade de DB

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    use Illuminate\Support\Facades\DB;
    Ensuite le controller qui renvoie le layout extend bien de Cotroller ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Question sur les boucles for, while
    Par Spotjaune dans le forum Débuter
    Réponses: 9
    Dernier message: 18/10/2015, 11h28
  2. [Débutant] Question sur les Layout
    Par pmier dans le forum Composants graphiques
    Réponses: 2
    Dernier message: 01/02/2015, 04h08
  3. [XL-2007] Petite question sur les boucles et deux series de checkbox dans deux colonnes
    Par scoubi77 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/09/2014, 23h48
  4. question sur les boucles for
    Par rob1son76 dans le forum Excel
    Réponses: 2
    Dernier message: 13/01/2010, 13h02
  5. Réponses: 5
    Dernier message: 16/06/2008, 22h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo