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?

0voto

tapos ghosh Punkte 1924

Laravel 5 können Sie dies leicht tun. siehe unten

{{--*/ @$variable_name = 'value'  /*--}}

0voto

Lakitha Dias Punkte 21

Sie können die Klinge wie unten gezeigt mit der Methode extend erweitern.

Blade::extend(function($value) {
    return preg_replace('/\@var(.+)/', '<?php ${1}; ?>', $value);
});

Danach werden die Variablen wie folgt initialisiert.

@var $var = "var"

0voto

Murtdha Dakhil Punkte 25

Innerhalb der Blade-Datei können Sie dieses Format verwenden

@php
  $i++
@endphp

0voto

dug Punkte 330

Ich hatte eine ähnliche Frage und fand die meiner Meinung nach richtige Lösung mit Komponisten ansehen

Mit View Composers können Sie jedes Mal, wenn eine bestimmte Ansicht aufgerufen wird, Variablen setzen, wobei es sich um bestimmte Ansichten oder ganze Ansichtsvorlagen handeln kann. Wie auch immer, ich weiß, es ist nicht eine direkte Antwort auf die Frage (und 2 Jahre zu spät), aber es scheint wie eine anmutige Lösung als Einstellung Variablen innerhalb einer Ansicht mit Blade.

View::composer(array('AdminViewPath', 'LoginView/subview'), function($view) {
    $view->with(array('bodyClass' => 'admin'));
});

0voto

Robert Brisita Punkte 4604

Meiner Meinung nach wäre es besser, die Logik im Controller zu belassen und sie zur Verwendung an den View zu übergeben. Dies kann auf eine von zwei Arten geschehen, indem man die Methode 'View::make' verwendet. Ich verwende derzeit Laravel 3, aber ich bin mir ziemlich sicher, dass es in Laravel 4 genauso ist.

public function action_hello($userName)
{
    return View::make('hello')->with('name', $userName);
}

または

public function action_hello($first, $last)
{
    $data = array(
        'forename'  => $first,
        'surname' => $last
    );
    return View::make('hello', $data);
}

Die Methode "mit" ist verkettbar. Sie würden dann die oben genannten wie folgt verwenden:

<p>Hello {{$name}}</p>

Weitere Informationen finden Sie hier:

http://three.laravel.com/docs/views

http://codehappy.daylerees.com/using-controllers

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