Лучший вариант, который я получаю, это следующее, надеюсь, кто-то найдет его полезным
В вашем файле просмотра:
@component('components.radioList',['values'=>[1,2,3,4],'name'=>'myname'])
@slot('html_0')
mi html item 0
@endslot
@slot('html_1')
mi html item 1
@endslot
@slot('html_2')
mi html item 2
@endslot
@slot('html_3')
mi html item 3
@endslot
@endcomponent
В блейде вашего компонента:
<ul class="list-group">
@foreach($values as $value)
@isset(${"html_{$loop->index}"})
<li class="list-group-item custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" id="customCheck_{{$loop->index}}" name="{{$name}}" value="{{$value}}">
<label class="custom-control-label" for="customCheck_{{$loop->index}}">
{{ ${"html_{$loop->index}"} }}
</label>
</li>
@endisset
@endforeach
</ul>
Единственное, что значения и количество слотов должны совпадать.
Если вам не нужны дополнительные значения для каждого слота, вы можете создать как счетчик:
@component('components.radioList',['count'=>4,'name'=>'myname'])
И измените Foreach на For
Cheers!