насколько я знаю, это не possi чтобы передать массив в компонент через @slot
. Тем не менее, это можно передать и массив непосредственно на компонент, не используя слот.
От documentation:
Передача дополнительных данных Компоненты
Иногда вам может понадобиться передать дополнительные данные к компоненту. Для по этой причине вы можете передать массив данных в качестве второго аргумента в директивой @component.Все данные будут доступны для компонента шаблона в качестве переменных:
@component('alert', ['foo' => 'bar'])
...
@endcomponent
Так скажем, у вас есть массив данных:
$my_array = ['a', 'b', 'c']
Вы можете передать его компоненту, как так:
@component('mylayouts.partials.contentheader', ['my_array' => $my_array])
...
@endcomponent
Или вы можете просто передать его непосредственно, без использования переменной:
@component('mylayouts.partials.contentheader', ['my_array' => ['a', 'b', 'c']])
...
@endcomponent
Тогда в вашем файле компонента у вас будет доступ к переменной $my_array
. Например, в файле contentheader.blade.php
вы можете сделать это:
<ul>
@foreach($my_array as $value)
<li>{{ $value }}</li>
@endforeach
</ul>
На самом деле пытался, что один, но был с трудом ловя массив в представлениях слот. То, что я сделал, помещает еще один «@include» внутри «@component» и использует переменные параметры для работы слота. Это не очень, хотя ... –
Смотрите мое новое редактирование, я думаю, что это более понятный код. –
Я думаю, что ваш первоначальный ответ на самом деле лучший. Я собираюсь попробовать на этой неделе в Slack посмотреть, что это за намеченный путь, и, надеюсь, обновить документацию после того, как это станет понятным. –