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 dedd($siteInfo);
est le suivant :
Ne pouvez-vous pas utiliser une flèche pour obtenir la valeur d'un attribut d'un ensemble ?
$siteInfo est bidimensionnel. Vous pouvez utiliser ->Array pour le convertir en tableau afin d'obtenir la valeur
.É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
Obtenez la valeur comme celle-ci