Laravel injecte des variables dans le problème de la vue de mise en page
大家讲道理
大家讲道理 2017-05-16 16:50:22
0
2
366

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 ?

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

répondre à tous(2)
Peter_Zhu

$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

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

Obtenez la valeur comme celle-ci

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal