recherche

Maison  >  Questions et réponses  >  le corps du texte

Laravel injecte des variables dans le problème de la vue de mise en page

En utilisant Laravel 5.3, nous devons injecter certaines variables dans la vue de mise en page partagée app.blade.php,

Ajout du code suivant dans la méthode boot() du fichier AppServiceProvider.php :

    public function boot()
    {
        view()->composer('layouts/app', function ($view) {
            $siteInfo=SiteInfo::all();
            dd($siteInfo);
            $view->with('siteName',$siteInfo->name)   // 这是line 22
                ->with('siteKeywords',$siteInfo->keywords)
                ->with('siteDescription',$siteInfo->description);
        });
    }

L'erreur suivante se produit :

    ErrorException in AppServiceProvider.php line 22:
    Undefined property: Illuminate\Database\Eloquent\Collection::$name (View: D:\wnmp\www\laravel-5-3-dev\resources\views\pages\index.blade.php)

L'emplacement de la ligne 22 est commenté dans AppServiceProvider.php.

Le résultat de

dd($siteInfo); est le suivant :

Ne pouvez-vous pas utiliser une flèche pour obtenir la valeur d'un attribut d'un ensemble ?

大家讲道理大家讲道理2822 Il y a quelques jours385

répondre à tous(2)je répondrai

  • 天蓬老师

    天蓬老师2017-05-16 16:52:22

    $siteInfo est bidimensionnel. Vous pouvez utiliser ->Array pour le convertir en tableau afin d'obtenir la valeur

    .

    répondre
    0
  • 为情所困

    为情所困2017-05-16 16:52:22

    Évidemment faux. Supposons que votre table siteinfo soit conçue comme suit
    id guid, nom varchar(60), valeur varchar(60)
    Pour le mot-clé du site Web, vous devez prendre la valeur du champ de valeur de l'enregistrement dont le champ de nom est un mot-clé.

    Il vous faut donc

    $siteinfo = SiteInfo::all();
    $siteinfo->where('name', 'key_word')->value;
    

    Obtenez la valeur comme celle-ci

    répondre
    0
  • Annulerrépondre