Weiß jemand, wie ich in meiner Auswahlbox die erste Option zum Leeren des Werts einstellen kann?
Ich erhalte die Daten von meiner Datenbank und möchte die Option standardmäßig auf "Bitte eine Option auswählen" setzen.
Ich habe festgestellt, dass 'default'=>'Please select'
nicht mit dem erforderlichen HTML5-Attribut ..__ funktioniert. Dies funktioniert:
$listOfValues = [1 => 'Choice 1'];
Form::select('fieldname',[null=>'Please Select'] + $listOfValues);
Wenn Sie keine moderne PHP - Syntax mögen,
$listOfValues = array(1 => 'Choice 1');
$listOfValues[null] = 'Please Select';
Form::select('fieldname', $listOfValues);
Der Punkt ist jedoch, eine Beschriftung für den Nullwert zu haben.
Wenn Sie das HTML-Paket von LaravelCollective verwenden, gehen Sie wie folgt vor.
Form::select('size', array('L' => 'Large', 'S' => 'Small'), null, ['placeholder' => 'Pick a size...']);
Dafür gibt es zwei Methoden:
{{ Form::select('user', array('default' => 'Please select one option') + $users, 'default') }}
Oder
<select>
<option selected disabled>Please select one option</option>
@foreach($users as $user)
<option value="{{ $user->id }}">{{ $user->name }}</option>
@endforeach
</select>
Für jeden, der dieses Verhalten benötigt, funktioniert dieser Weg gut:
Regler:
$entityArray = Entity::lists('name', 'id');
$entityArray->prepend('Select', 'Select');
Aussicht:
{!! Form::select('entity', $entityArray) !!}
Das hat auf Laravel 5.4 funktioniert.
{{ Form::select('agency', $agency, null, [
'placeholder' => 'Please select ...',
'class' => 'form-control'
]) }}
100% Ergebnis:
Im Controller:
$users = App\User::get()->lists('full_name', 'id')->prepend('Select user','');
return view('name of view')->with('users', $users);
Im Hinblick auf:
{!! Form::select('who', $users, null, ['class' => 'form-control inline']) !!}
Ich verwende "laravelcollective/html": "^ 5.3.0"
In Laravel 5.1 habe ich es gelöst
$categories = [''=>''] + Category::lists('name', 'id')->toArray();
return view('products.create', compact('categories'));
Oder
$categories = [''=>''] + Category::lists('name', 'id')->all();
return view('products.create', compact('categories'));
Für eine Laravel 5-Sammlung müssen Sie die Sammlung möglicherweise zuerst in ein Array konvertieren.
<?php
$defaultSelection = [''=>'Please Select'];
$users = $defaultSelection + $users->toArray();?>
und gelten als $ Benutzer als
{!! Form::select('user', $users); !!}
im Controller
$data['options']=Entity::pluck('name','id')->prepend('Please Select','');
return view('your_view_blade',$data);
in Ansicht Klinge
{!! Form::select('control_name',$options,null,['class'=>'your_class']) !!}
Sie müssen das Array vor der Ansicht bearbeiten
oder, um unordentlich zu sein, könnten Sie es in Blade @php-Tags tun
$users= [null => 'Empty'];
$dbusers= User::pluck('id', 'name');
$users= array_merge($users, $dbusers->toArray());
return view('myview', compact('users'))
und dann können Sie in der Ansicht Folgendes tun
{{ Form::select('user',$users, ['class' => 'form-control']) }}
In Laravel 5.2
Das hat bei mir funktioniert
{!! Form::select('user', $users, null, array('class'=>'form-control', 'placeholder' => 'Please select')) !!}
wie ich gerade placeholder
hinzufüge und es den Trick gemacht hat
Hinzufügen zu Laerte Anwser
Sie können dies am Blade level
tun, indem Sie einfach einen Befehl ausgeben:
{!! Form::select('entity', $entityArray) !!}
{{ Form::select('parent_id', [null=>'Please Select'] + \App\Item::where('1','1')->pluck('name', 'id')->toArray()) }}
In der Ansicht
{!! Form :: select ('qualification_level', $ qualification, old ('Qualification_Level'), ['class' => 'form-control select2', 'placeholder' => '']) !! }
Im Controller $ qualification =\App\Qualification :: pluck ('name', 'id') -> voranstellen ('Bitte auswählen');