Laravel: 在下拉列表中显示数据库中的数据
Laravel: Display data in DropDown from database
我正在用 Laravel 开发一个项目,想使用下拉列表并用数据库中的数据填充它,请帮忙。这是我使用的代码:
控制器:
public function create()
{
$items = Income::pluck('name', 'id');
return view ('IncomeExpense.create');
}
查看:
<div class="form-group">
{{Form::label('', 'Category')}}
{{Form::select('IncomeExpense',null, $items,['class'=>'form-control',
'placeholder'=>'Choose category'])}}
</div>
Mirasan - 您需要传递视图从数据库中检索您的信息。
$items = Income::pluck('name', 'id');
return view ('IncomeExpense.create')->with(compact('items'));
然后在 blade 文件中,您将访问数组 'items'(而不是 $items)。
问候 -
首先,
你的控制器有错误...请阅读 eloquent official documentation 它应该是:
public function create()
{
$items = Income::all();
return view ('IncomeExpense.create', compact('items'));
}
无论如何你不应该使用表单生成器,我认为如果你使用像 Components & Slots 这样的原生 blade 功能会更有用。如果我没记错的话,Form Builder 已从 Laravel 5.0 中删除,以便将框架注意力集中在后端...
听几个 Bootstrap 4 的例子:
原版
<form method="POST" action="{{ route('your-route') }}" aria-label="{{ __('My form') }}">
@csrf
<div class="form-group row">
<label for="dropdown" class="col-sm-4 col-form-label text-md-right">{{ __('My dropdown') }}</label>
<div class="col-md-12">
<select class="form-control{{ $errors->has('email') ? ' is-invalid' : '' }}" name="dropdown">
@foreach($my_collection as $item)
<option value="{{ $item->id }}">{{ $item->text }}</option>
@endforeach
</select>
@if ($errors->has('dropdown'))
<span class="invalid-feedback" role="alert">
<strong>{{ $errors->first('dropdown') }}</strong>
</span>
@endif
</div>
</div>
{{-- other fields --}}
组件
<!-- /resources/views/components/select.blade.php -->
{{ $label }}
<div class="col-md-{{ $column == null ? 12 : $column }}">
<select class="form-control{{ ' ' . $select_css }}{{ $error == null ? '' : ' is-invalid' }}" name="dropdown">
@foreach($my_collection as $item)
<option value="{{ $item->id }}">{{ $item->text }}</option>
@endforeach
</select>
@if ($error != null)
<span class="invalid-feedback" role="alert">
<strong>{{ $error</strong>
</span>
@endif
</div>
<!-- /resources/views/my/form.blade.php -->
<form method="POST" action="{{ route('your-route') }}" aria-label="{{ __('My form') }}">
@csrf
<div class="form-group row">
@component('components.select', ['select_css' => 'whatever', 'my_collection' => $my_collection])
@slot('label')
<label for="dropdown" class="col-sm-4 col-form-label text-md-right">{{ __('My dropdown') }}</label>
@endslot
</div>
{{-- other fields --}}
我正在用 Laravel 开发一个项目,想使用下拉列表并用数据库中的数据填充它,请帮忙。这是我使用的代码:
控制器:
public function create()
{
$items = Income::pluck('name', 'id');
return view ('IncomeExpense.create');
}
查看:
<div class="form-group">
{{Form::label('', 'Category')}}
{{Form::select('IncomeExpense',null, $items,['class'=>'form-control',
'placeholder'=>'Choose category'])}}
</div>
Mirasan - 您需要传递视图从数据库中检索您的信息。
$items = Income::pluck('name', 'id');
return view ('IncomeExpense.create')->with(compact('items'));
然后在 blade 文件中,您将访问数组 'items'(而不是 $items)。
问候 -
首先,
你的控制器有错误...请阅读 eloquent official documentation 它应该是:
public function create()
{
$items = Income::all();
return view ('IncomeExpense.create', compact('items'));
}
无论如何你不应该使用表单生成器,我认为如果你使用像 Components & Slots 这样的原生 blade 功能会更有用。如果我没记错的话,Form Builder 已从 Laravel 5.0 中删除,以便将框架注意力集中在后端...
听几个 Bootstrap 4 的例子:
原版
<form method="POST" action="{{ route('your-route') }}" aria-label="{{ __('My form') }}">
@csrf
<div class="form-group row">
<label for="dropdown" class="col-sm-4 col-form-label text-md-right">{{ __('My dropdown') }}</label>
<div class="col-md-12">
<select class="form-control{{ $errors->has('email') ? ' is-invalid' : '' }}" name="dropdown">
@foreach($my_collection as $item)
<option value="{{ $item->id }}">{{ $item->text }}</option>
@endforeach
</select>
@if ($errors->has('dropdown'))
<span class="invalid-feedback" role="alert">
<strong>{{ $errors->first('dropdown') }}</strong>
</span>
@endif
</div>
</div>
{{-- other fields --}}
组件
<!-- /resources/views/components/select.blade.php -->
{{ $label }}
<div class="col-md-{{ $column == null ? 12 : $column }}">
<select class="form-control{{ ' ' . $select_css }}{{ $error == null ? '' : ' is-invalid' }}" name="dropdown">
@foreach($my_collection as $item)
<option value="{{ $item->id }}">{{ $item->text }}</option>
@endforeach
</select>
@if ($error != null)
<span class="invalid-feedback" role="alert">
<strong>{{ $error</strong>
</span>
@endif
</div>
<!-- /resources/views/my/form.blade.php -->
<form method="POST" action="{{ route('your-route') }}" aria-label="{{ __('My form') }}">
@csrf
<div class="form-group row">
@component('components.select', ['select_css' => 'whatever', 'my_collection' => $my_collection])
@slot('label')
<label for="dropdown" class="col-sm-4 col-form-label text-md-right">{{ __('My dropdown') }}</label>
@endslot
</div>
{{-- other fields --}}