2017-09-03 1 views
0

Peut-être que c'était ma formulation lors de la recherche parce que je suis nouveau à Laravel mais j'essaie de trouver le moyen le plus faisable de créer une variable de script d'en-tête définie par l'utilisateur. Ma pensée derrière ceci est de pouvoir avoir une section auth de l'en-tête du site Web -/et sur cette route je serais capable de gérer une section de l'en-tête où je peux ajouter un script Analytics ou n'importe quel tag de script tiers. Je pense que @yield('userHeader') dans mon modèle maître.Ajout d'un en-tête défini par l'utilisateur dans Laravel Template

Ensuite, dans chaque page, il devrait être inclus dans ajoutez une section

@section('userHeader') 
    {!! $header->script !!} 
@endsection 

J'aurait essentiellement de créer un modèle pour en-tête et une nouvelle table DB pour abriter l'ensemble de la balise de script.

On dirait que cela fonctionnerait mais je suis sûr que quelqu'un l'a déjà fait. Y a-t-il un moyen plus efficace de le faire?

Si je décide de le faire comme indiqué ci-dessus, je dois essentiellement alors:

use App\Header; 

dans chaque contrôleur, je veux

$header = Header::all(); 

Ensuite, utilisez ce qui suit dans chaque page. Il ne devrait y avoir qu'un seul enregistrement dans cette table car il n'y aura qu'un seul en-tête défini par l'utilisateur, donc je ne suis pas sûr qu'une table DB est nécessaire. Est-ce la meilleure façon d'inclure une zone définie par l'utilisateur dans l'en-tête? Cela causera-t-il des problèmes de sécurité ou de stabilité du site si cela inclut des caractères spéciaux?

@section('userHeader') 
    @if(count($header) > 0) 
    {!! $header->script !!} 
    @endif 
@endsection 

Répondre

0

Vous pouvez le faire avec View Composers

Ou vous pouvez définir les données dans le contrôleur principal et d'y accéder à partir de chaque contrôleur qui étend le principal. Je pense que ce sera mieux avec View Composers

+0

Je me souviens avoir vu cette section dans les docs mais je ne l'ai jamais mise ensemble. Merci! – Cjwoodru2