Laravel Blade: @stop VS @show VS @endsection VS @append - PullRequest
0 голосов
/ 25 мая 2018

В Laravel есть разные способы использования секций:

@yield('section1') // Filled in by child view

@section('section2')
    // Default content, can be overwritten by child
    // Different ways of closing the section
@endsection|stop|show|append

Кто подскажет, какова точная разница между всеми этими?

Согласно this , @stop и @endsection могут быть одинаковыми.(с одним устаревшим, но не более)

1 Ответ

0 голосов
/ 25 мая 2018

@endsection и @stop одинаковы и указывают на конец раздела.

Раздел фактически не отображается на странице, пока вы не выполните @yield('sectionname')

В отличие, @show эквивалентно

@stop
@yield('sectionname')

, т. Е. Останавливается и немедленно отображает раздел в этой части страницы.

@append в основном эквивалентен:

//FileA.blade.php
@section('sectionname')
 ... content
@stop

//FileB.blade.php
@extends('fileA')

@section('sectionname')
    @parent
    ... more content after content
@stop

Вот некоторый соответствующий исходный код:

protected function compileStop() {
    return '<?php $__env->stopSection(); ?>';
}
protected function compileEndsection() {
    return '<?php $__env->stopSection(); ?>'; //Same code
}

protected function compileShow() {
    return '<?php echo $__env->yieldSection(); ?>';
}

Секция доходности просто останавливает текущийраздел и выдает его содержимое.

...