konradkalemba/blade-components-scoped-slots

Scoped slots feature addition to Laravel's Blade templating engine

0.1.1 2020-03-22 15:07 UTC

This package is auto-updated.

Last update: 2024-03-22 23:38:19 UTC


README

Latest Stable Version Total Downloads

Scoped slots feature addition to Laravel's Blade templating engine. The package adds two new Blade directives: @scopedslot and @endscopedslot. Inspired by Vue's scoped slots feature.

Installation

composer require konradkalemba/blade-components-scoped-slots

Usage example

index.blade.php

@component('components.list', ['objects' => $objects])
    @scopedslot('item', ($object))
    // It is also possible to pass outside variable to the scoped slot
    // by using the third parameter: @scopedslot('item', ($object), ($variable))
        <li>
            {{ $object->name }} 
            @if($object->isEditable)
                <a href="{{ route('objects.edit', $object->id) }}">{{ __('Edit') }}</a>
            @endif
        </li>
    @endscopedslot
@endcomponent

components/list.blade.php

<ul>
    @foreach($objects as $object)
        {{ $item($object) }}
    @endforeach
</ul>

License

License