How to reuse a blade partial in a template

后端 未结 1 1101
别跟我提以往
别跟我提以往 2021-02-20 03:50

I would like to be able to repeat a partial a number of times within a view, with different content in each repetition.

The partial is a simple panel, with a heading, an

1条回答
  •  名媛妹妹
    2021-02-20 04:33

    For Laravel 5.4, Components & Slots may be useful for you. The following solution is for Laravel 4.x, and likely <= 5.3 as well.


    In my opinion, this is a silly use case for the @include syntax. The amount of HTML retyping you're saving is negligible, especially since the only potentially-complicated part of it is the inner content. Keep in mind, the more parsing that needs to be done, the more overhead your application has, also.

    Also, I don't know the inner workings of the @yield & @section features, so I can't say how "proper" it is to work your includes this way. Includes typically utilize a key => value pair passed as a parameter in the include call:

    @include('panel', ['heading' => 'Welcome', 'inner' => '

    Some stuff here.

    '])

    Not the most ideal place to pack a bunch of HTML, but that's the "designed" way (as far as I know, at least).

    That said...

    Use the @section ... @overwrite syntax mentioned in the "Other Control Structures" part of the template docs page.

    @extends('default')
    
    @section('content')
    
        {{-- First Panel --}}
        @section('heading')
            Welcome, {{ $user->name }}
        @overwrite
        @section('inner')
            

    Welcome to the site.

    @overwrite @include('panel') {{-- Second Panel --}} @section('heading') Your Friends @overwrite @section('inner')
      @foreach($user->friends as $friend)
    • {{ $friend->name }}
    • @endforeach
    @overwrite @include('panel') @stop

    0 讨论(0)
提交回复
热议问题