vistas vista que plantillas motor index entre diferencias crear content code agregar php laravel-5 blade

vista - Código PHP dentro de Laravel 5 Blade Template



que es el motor de plantillas blade (4)

El nuevo NewBladeCompiler siguiente usará @{ }} para aceptar todos los códigos php como asignación de variables, declaración de clase, etc., por ejemplo, @{ $variable = 0; }} @{ $variable = 0; }} se compilará a <?php $variable=0; ?> <?php $variable=0; ?>

<?php use Illuminate/View/Compilers/BladeCompiler; class NewBladeCompiler extends BladeCompiler { /** * Get the echo methods in the proper order for compilation. * * @return array */ function getEchoMethods() { $methods = [ ''compileRawEchos'' => strlen(stripcslashes($this->rawTags[0])), ''compileEscapedEchos'' => strlen(stripcslashes($this->escapedTags[0])), ''compileRegularEchos'' => strlen(stripcslashes($this->contentTags[0])), ''compilePhpEchos'' => strlen(stripcslashes("@{")) ]; uksort($methods, function ($method1, $method2) use ($methods) { // Ensure the longest tags are processed first if( $methods[$method1] > $methods[$method2] ) { return -1; } if( $methods[$method1] < $methods[$method2] ) { return 1; } // Otherwise give preference to raw tags (assuming they''ve overridden) if( $method1 === ''compilePhpEchos'' ) { return -1; } if( $method2 === ''compilePhpEchos'' ) { return 1; } if( $method1 === ''compileRawEchos'' ) { return -1; } if( $method2 === ''compileRawEchos'' ) { return 1; } if( $method1 === ''compileEscapedEchos'' ) { return -1; } if( $method2 === ''compileEscapedEchos'' ) { return 1; } }); return $methods; } function compilePhpEchos( $value ) { $pattern = sprintf(''/(@)?%s/s*(.+?)/s*%s(/r?/n)?/s'', "@{", "}}"); $callback = function ($matches) { $whitespace = empty($matches[3]) ? '''' : $matches[3] . $matches[3]; return $matches[1] ? substr($matches[0], 1) : ''<?php '' . $matches[2] . '' ?>'' . $whitespace; }; return preg_replace_callback($pattern, $callback, $value); } } ?>

Tengo que colocar algo de código PHP dentro de Laravel 5 Blade Template. Como abajo

@foreach ($farmer->tasks as $task) @if ($task->pivot->due_at) < date(now)) $style = ''alert alert-danger''; @elseif ($task->pivot->due_at) > date(now)) $style = ''alert alert-success''; @else $style = ''''; @endif @endforeach

¿Cuál es el procedimiento real para colocar el código PHP dentro de Laravel 5 Blade Template?


Las recetas de Laravel sugieren una forma simple pero efectiva de hacerlo sin incluir las etiquetas php

{{--*/ $var = ''test'' /*--}}

{{- -}} funciona como un comentario blade / y / revierte el efecto del comentario resultante en

<?php $var = ''test'' ?>

El problema es que es más largo que incluir etiquetas php :-(


Según la documentation , en Laravel 5.2 y versiones posteriores, puede utilizar el siguiente código:

@php {{-- php code here --}} @endphp

Alternativamente, puede extender el motor de plantillas Blade como se describe here .

Si ninguna de las soluciones anteriores es adecuada, está atascado con las respuestas dadas por @Armen y @Gonzalo


Simplemente abra y cierre las etiquetas php: <?php $style = ''...''; ?> <?php $style = ''...''; ?>