352 Stimmen

Wie man Variablen in einem Laravel Blade Template einstellt

Ich lese gerade die Laravel Blade Dokumentation und ich kann nicht herausfinden, wie ich Variablen innerhalb einer Vorlage zur späteren Verwendung zuweisen kann. Ich kann nicht tun {{ $old_section = "whatever" }} denn das würde ein Echo von "wie auch immer" hervorrufen und das will ich nicht.

Ich verstehe, dass ich Folgendes tun kann <?php $old_section = "whatever"; ?> aber das ist nicht elegant.

Gibt es eine bessere, elegante Möglichkeit, dies in einer Blade-Vorlage zu tun?

30voto

Daan Punkte 7235

Seit Laravel 5.2.23 haben Sie die @php Blade-Richtlinie , die Sie inline oder als Blockanweisung verwenden können:

@php($old_section = "whatever")

または

@php
    $old_section = "whatever"
@endphp

23voto

Prince Ahmed Punkte 910

Sie können Variablen in der Blade Templating Engine auf die folgenden Arten setzen:

1. Allgemeiner PHP-Block
Einstellung Variable: <?php $hello = "Hello World!"; ?>
Sortie : {{$hello}}

2. Klinge PHP-Block
Einstellung Variable: @php $hello = "Hello World!"; @endphp
Sortie : {{$hello}}

20voto

Vasile Goian Punkte 415

Sie können eine Variable in der Ansichtsdatei setzen, aber sie wird so gedruckt, wie Sie sie gesetzt haben. Es gibt jedoch eine Abhilfe. Sie können die Variable in einem unbenutzten Abschnitt setzen. Beispiel:

@section('someSection')
  {{ $yourVar = 'Your value' }}
@endsection

Dann {{ $yourVar }} wird gedruckt Your value wo immer Sie es wollen, aber Sie erhalten die Ausgabe nicht, wenn Sie die Variable speichern.

EDIT: Die Angabe des Abschnitts ist erforderlich, da sonst eine Ausnahme ausgelöst wird.

20voto

Hamidreza Punkte 1707

Im Laravel-Dokument https://laravel.com/docs/5.8/blade#php Das können Sie auf diese Weise tun:

@php
     $my_variable = 123;
@endphp

17voto

Justin Punkte 24628

In Laravel 4:

Wenn Sie möchten, dass die Variable in allen Ihren Ansichten zugänglich ist, nicht nur in Ihrer Vorlage, View::share ist eine großartige Methode ( mehr Informationen auf diesem Blog ).

Fügen Sie einfach Folgendes ein app/controllers/BaseController.php

class BaseController extends Controller
{
  public function __construct()
  {                   
    // Share a var with all views
    View::share('myvar', 'some value');
  }
}

und jetzt $myvar wird für alle Ihre Ansichten verfügbar sein - einschließlich Ihrer Vorlage.

Ich habe dies verwendet, um umgebungsspezifische Asset-URLs für meine Bilder festzulegen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X