template sirve que plantillas para gratis for example descargar content ciclo buy laravel laravel-5.4 laravel-views

sirve - Atributo de rendimiento Laravel



para que sirve el yield laravel (17)

¿Por qué no usas así?

@section(''mainApp'') id=''myid'' @endsection

Esto no va a escapar del personaje.

Estoy tratando de establecer un atributo usando @yield y @section , pero ¿cómo? Traté de usar

<html @yield(''mainApp'')>

y

@section(''mainApp'',''id="myid"'')

pero devuelve id = & quot; myid & quot; en lugar de id = "myid"

Sé que puedo administrarlo con una identificación predeterminada, pero no me gusta de esta manera, ¿y si tengo que usar un atributo personalizado?


¿Qué versión de Laravel estás usando? En el Laravel 5.4, hay una actualización sobre esto:

Espada

Escapada @sección

En Laravel 5.4, el contenido en línea pasado a una sección se escapa automáticamente:

@section (''título'', $ contenido)

Si desea representar contenido sin escaparse en una sección, debe declarar la sección usando el estilo tradicional de "forma larga":

@sección de título'') {!! $ contenido!} @stop

https://laravel.com/docs/5.4/upgrade

Larga historia corta, intenta usar Laravel 5.4 y luego usa este código

@section(''mainApp'') id="myid" @stop


Acabo de probarlo en una versión 5.4 y lo que funciona para mí es:

Esto está en mi diseño

<html lang="en" @yield(''mainApp'')>

Y esto en mi vista extendida

@section(''mainApp'',''id=myid'')

El resultado está en la imagen adjunta.


Así es como hago esto en Laravel 5.4:

Plantilla HTML (template.html):

<!DOCTYPE html> <html id="{{ $html_id or '''' }}" lang="{{ $html_locale or ''en'' }}"> <head> ... @yield(''head'') ... </head> <body> ... @yield(''body'') ... </body> </html>

Una plantilla base (template.main)

@component(''template.html'') @section(''head'') ... @stop @section(''body'') ... @yield(''contents'') ... @stop @endcomponent

Una plantilla de página que definirá el #ID HTML

@extends(''template.main'') @slot(''html_id'') app-html-id @endslot @section(''contents'') ... @stop


Así que una mejor manera de hacer esto si te entiendo es usando @stack y @push

<html class="no-js" lang="en" @stack(''mainApp'')>

Y cualquier página que quieras enviar, usa id @push

@push(''mainApp'') id=''myid'' @endpush

https://laravel.com/docs/5.2/blade#stacks

Incluso puede agregar variables o lo que cada uno de sus gustos allí y que irá donde está el @stack


Déjame decirte en una línea.

El Nombre de la Sección de Inicio debe ser el rendimiento (''Nombre de la Sección'')


Define tu diseño maestro con @yield

<html lang="{{ config(''app.locale'') }}" @yield(''hello'')>

Extender ese maestro

@extends(''layouts.app'')

Inicio de la sección hola

@section(''hello'') id="myId" @endsection

La salida de los siguientes es como esto aquí id = "myId" es parte dinámica.

<html id="myId" lang="en">


El contenido predeterminado de la sección se escapa mediante la ayuda de e() . Desde Laravel 5.1, puede usar Illuminate/Support/HtmlString , este contenido html de clase no se escapa, sino que se representa directamente mediante la función auxiliar Laravel e() , es decir:

@section(''mainApp'', new Illuminate/Support/HtmlString(''id="myid"''))


En tu controlador haces algo como:

return view(''my_page'')->with(''myid'', ''myid'');

y en tu vista / diseño haces algo como:

<html {{ $myid or '''' }}> ...

No necesitas rendirte para esa tarea.


Hay una clase HtmlString que puedes usar para este tipo de cosas, Laravel la usa para cosas como csrf_field() y method_field() .

Usted podría en línea si lo desea:

@section(''mainApp'', new /Illuminate/Support/HtmlString(''id="myid"''))

Sin embargo, personalmente crearía un ayudante personalizado para esto, de modo que pueda acceder a él mucho más fácilmente, es decir:

@section(''mainApp'', html_string(''id="myid"''))

El ayudante debe verse algo así como ...

function html_string($string) { return new /Illuminate/Support/HtmlString($string); }

Si necesita ayuda para crear un ayudante personalizado, consulte esta respuesta https://.com/a/28290359/7844646


Laravel escapa de HTML por defecto. Por lo tanto veo que tienes dos opciones.

  1. Exponga el valor a la vista como una variable en su controlador.

    view()->share(''mainApp'', sprintf(''id="%s"'', ''myid''));

A continuación, generar el valor sin escapar.

<html {!! $mainApp !!}

  1. Solo se obtiene el valor del atributo id , no el atributo completo.

    @section(''mainApp'') myid @stop

    <html id="@yield(''mainApp'', '''')">


No estoy seguro de cómo está asignando el valor de myId pero si es solo una variable de PHP, ¿ha intentado pasarlo a sus parciales de esta manera?

@yield(''mainApp'', [ ''id'' => $myid ]) @section(''mainApp'', [ ''id'' => $myid ])

Debería poder pasar cualquier variable de una plantilla a otra y asignarlas a distintos nombres de variables utilizando una matriz asociativa de pares clave => valor


No lo he probado, pero tal vez podrías hacer algo como esto:

<html {!! View::getSections()[''mainApp''] !!}>

Si tengo razón, View::getSections() devuelve todas las secciones definidas.

Sin embargo, no sé si funcionará porque tal vez se llamará a getSections antes de definir la sección. Pero todavía vale la pena un tiro.


Si quieres lograr <html id="myid"> puedes hacerlo de esta manera:

en su etiqueta html agregue esto:

<html @yield(''mainApp'')>

y en su plantilla:

@section(''mainApp'', "id=myid") // this will give you <html id="myid">


Si revisa la Guía de actualización en el enlace a continuación, verá algunas líneas debajo de Blade: https://laravel.com/docs/5.4/upgrade

@section Escaping

En Laravel 5.4, el contenido en línea pasado a una sección se escapa automáticamente:

@section(''title'', $content)

Si desea representar contenido sin escaparse en una sección, debe declarar la sección usando el estilo tradicional de "forma larga":

@section(''title'') {!! $content !!} @stop

Entonces, para obtener el resultado de la consulta que necesita, haga lo siguiente:

@section(''mainApp'', {!! ''id="myid"'' !!})


Tal vez algo como esto ayudaría:

{!! $__env->yieldContent(''mainApp'') !!}

Dicho esto, usando laravel 5.4, tu forma de trabajo funciona bien para mí ... ¿qué versión estás usando?


si se usa Laravel 5.4, el contenido en línea pasado a una sección se escapa automáticamente.

luego eliminar automáticamente escapó en la sección para usados

@section(''mainApp'', {!! ''id="myid"'' !!})