У меня логическая ошибка в laravel в компоненте вида. Я создал один блок выбора и по его значению получаю его из таблицы базы данных. При просмотре кода отображается только последнее значение таблицы.
Здесь я приложил свой файл компонента и просмотр файла.
Мой файл просмотра: newuphist.blade.php
@if(isset($data))
<div class="field_wrapper">
@component('compnew')
@slot('select')
select
@foreach($data as $item)
@slot('opt')
{{$item->diseaseName}}
@endslot
@endforeach
@endslot
@slot('txtbx')
MM
@endslot
@endcomponent
@endif
и мой файл компонента: compnew.blade.php
<select name="{{ $select }}" value="{{ $select }}" >
<option name="{{$opt}}" value="{{$opt}}">{{$opt}}</option>
</select>
<input type="text" name="{{$txtbx}}" value="{{$txtbx}}">
Кто-то, пожалуйста, помогите мне узнать, как я могу отобразить все значения в поле выбора.
Заранее спасибо.
Вы должны передать компонент в foreach, и тогда вы попробуете его.
@if(isset($data))
<div class="field_wrapper">
@foreach($data as $item)
@component('compnew')
@slot('select')
select
@slot('opt')
{{$item->diseaseName}}
@endslot
@endslot
@slot('txtbx')
MM
@endslot
@endcomponent
@endforeach
@endif
Узнав об основах Laravel, я нашел ответ.
@if(isset($data))
<div class="field_wrapper">
@component('compnew',['select'=>'select','txtbx'=>'MM'])
@slot('opt')
@foreach($data as $item)
<option value="{{$item->diseaseName}}">
{{$item->diseaseName}}
</option>
@endforeach
@endslot
@endcomponent
@endif
Мой компонентный файл:
<select name="{{!empty($select) ? $select : '' }}" value="{{!empty($select) ? $select : '' }}" >
{{!empty($opt) ? $opt : '' }}
</select>
<input type="text" name="{{!empty($txtbx) ? $txtbx : '' }}" value="{{!empty($txtbx) ? $txtbx : '' }}">