php - una - Seleccionar el cuadro con la primera opción vacía
strip_tags() (14)
100% de resultado:
En el controlador:
$users = App/User::get()->lists(''full_name'', ''id'')->prepend(''Select user'','''');
return view(''name of view'')->with(''users'', $users);
En vista:
{!! Form::select(''who'', $users, null, [''class'' => ''form-control inline'']) !!}
Estoy usando el paquete "laravelcollective / html": "^ 5.3.0"
¿Alguien sabe cómo puedo configurar en mi cuadro de selección la primera opción para vaciar el valor?
Obtengo los datos de mi base de datos, y me gustaría establecer la opción de forma predeterminada como "Seleccione una opción".
Debe manipular la matriz antes de la vista
o estar desordenado, podrías hacerlo en las etiquetas blade @php
$users= [null => ''Empty''];
$dbusers= User::pluck(''id'', ''name'');
$users= array_merge($users, $dbusers->toArray());
return view(''myview'', compact(''users''))
y luego puedes hacer lo siguiente en la vista
{{ Form::select(''user'',$users, [''class'' => ''form-control'']) }}
En Laravel 5.1 lo resolví haciendo
$categories = [''''=>''''] + Category::lists(''name'', ''id'')->toArray();
return view(''products.create'', compact(''categories''));
O
$categories = [''''=>''''] + Category::lists(''name'', ''id'')->all();
return view(''products.create'', compact(''categories''));
En laravel 5.2
Esto funcionó para mí
{!! Form::select(''user'', $users, null, array(''class''=>''form-control'', ''placeholder'' => ''Please select'')) !!}
como acabo de agregar placeholder
y se hizo el truco
Esto funcionó para mí en Laravel 5.4.
{{ Form::select(''agency'', $agency, null, [
''placeholder'' => ''Please select ...'',
''class'' => ''form-control''
]) }}
Hay 2 métodos para hacer esto:
{{ Form::select(''user'', array(''default'' => ''Please select one option'') + $users, ''default'') }}
O
<select>
<option selected disabled>Please select one option</option>
@foreach($users as $user)
<option value="{{ $user->id }}">{{ $user->name }}</option>
@endforeach
</select>
Para cualquiera que necesite este comportamiento, de esta manera está funcionando bien:
Controlador:
$entityArray = Entity::lists(''name'', ''id'');
$entityArray->prepend(''Select'', ''Select'');
Ver:
{!! Form::select(''entity'', $entityArray) !!}
Para una colección de Laravel 5, es posible que primero tenga que convertir la colección en matriz.
<?php
$defaultSelection = [''''=>''Please Select''];
$users = $defaultSelection + $users->toArray();?>
y aplicar $ usuarios como
{!! Form::select(''user'', $users); !!}
Si está utilizando el paquete HTML de LaravelCollective , haga lo siguiente ...
Form::select(''size'', array(''L'' => ''Large'', ''S'' => ''Small''), null, [''placeholder'' => ''Pick a size...'']);
Sumando a Laerte awser
Puedes hacerlo en el Blade level
simplemente emitiendo un comando:
{!! Form::select(''entity'', $entityArray) !!}
en el controlador
$data[''options'']=Entity::pluck(''name'',''id'')->prepend(''Please Select'','''');
return view(''your_view_blade'',$data);
en vista blade
{!! Form::select(''control_name'',$options,null,[''class''=>''your_class'']) !!}
Descubrí que ''default''=>''Please select''
no funciona con el atributo HTML5 required. Esto funciona:
$listOfValues = [1 => ''Choice 1''];
Form::select(''fieldname'',[null=>''Please Select''] + $listOfValues);
Si no te gusta la sintaxis PHP moderna,
$listOfValues = array(1 => ''Choice 1'');
$listOfValues[null] = ''Please Select'';
Form::select(''fieldname'', $listOfValues);
Pero el punto es tener una etiqueta para el valor nulo.
{ !! Form::select(''country'', $country, ''GB'', [''id'' = > ''country'', ''class'' = > ''form-control select2me'']) !!}
Aquí $country
es una matriz que contiene muchos países, en esta matriz se encuentra "gran bretaña" con el id. "GB" que se seleccionará de forma predeterminada.
{{ Form::select(''parent_id'', [null=>''Please Select''] + /App/Item::where(''1'',''1'')->pluck(''name'', ''id'')->toArray()) }}