Je veux définir l'état des cases à cocher à partir de la base de données, donc j'écris,
{{ Form::checkbox('asap', null, $offer->asap) }}
Mais si je veux mettre 'id' sur la case à cocher comme
{{ Form::checkbox('asap', null, $offer->ASAP, array('id'=>'asap')) }}
Il a toujours défini mon état de case à cocher sur true. (Avant que l'utilisateur ne le sélectionne)
Alors, demandez-vous comment définir "id" dans les cases à cocher de la lame lorsque l'état de la case à cocher est défini avant que l'utilisateur ne le sélectionne?
Le troisième argument décide si la case est cochée ou non. Alors probablement $offer->ASAP
(ou $offer->asap
est vrai (ou non faux ou non nul). Si vous souhaitez désactiver la case à cocher, définissez-la sur false ou n'utilisez pas le troisième argument (défini sur null ou false):
{{ Form::checkbox('asap',null,null, array('id'=>'asap')) }}
MODIFIER
Une autre possibilité est que vous avez sur votre page du code JavaScript personnalisé qui trouve l'élément par asap
id et coche cette case. Ainsi, lorsque vous ne définissez pas l'ID, JavaScript ne peut pas le vérifier, mais lorsque vous définissez cet ID, la case à cocher sera cochée par JavaScript.
Je sais que cette question a été répondue auparavant, dans celle-ci, je vais expliquer étape par étape comment implémenter des cases à cocher avec Laravel/blade avec différents cas ...
Donc, pour charger vos cases à cocher à partir de la base de données ou pour tester si une case à cocher est cochée:
d'abord de tout ce dont vous avez besoin pour comprendre comment cela fonctionne, comme @itachi l'a mentionné:
{{Form :: case à cocher (1er argument, 2e argument, 3e argument, 4e argument)}}
Exemple:
{{ Form::checkbox('admin') }}
//will produces the following HTML
<input name="admin" type="checkbox" value="1">
{{ Form::checkbox('admin', 'yes', true) }}
//will produces the following HTML
<input checked="checked" name="admin" type="checkbox" value="yes">
Comment obtenir les valeurs des cases à cocher? (dans votre contrôleur)
Méthode 1:
public function store(UserCreateRequest $request)
{
$my_checkbox_value = $request['admin'];
if($my_checkbox_value === 'yes')
//checked
else
//unchecked
...
}
Méthode 2:
if (Input::get('admin') === 'yes') {
// checked
} else {
// unchecked
}
Remarque: vous devez attribuer une valeur par défaut à la case non cochée:
if(!$request->has('admin'))
{
$request->merge(['admin' => 0]);
}
c'est Nice non? mais comment pourrions-nous définir des cases cochées à notre avis?
Pour une bonne pratique, je suggère d'utiliser
Form::model
lorsque vous créez votre formulaire, cela remplit automatiquement les valeurs d'entrée qui ont les mêmes noms que le modèle (ainsi que l'utilisation de différentes lames Form :: inputs ..)
{!! Form::model( $user, ['route' => ['user.update', $user->id], 'method' => 'put' ]) !!}
{!! Form::checkbox('admin', 1, null) !!}
{!! Form::close() !!}
Vous pouvez également l'obtenir comme ceci:
{{ Form::checkbox('admin',null, $user->admin) }}
Okey maintenant comment gérer:
disons que nous voulons obtenir des jours ouvrables à partir de notre base de données
$working_days = array( 0 => 'Mon', 1 => 'Tue', 2 => 'Wed',
3 => 'Thu', 4 => 'Fri', 5 => 'Sat', 6 => 'Sun' );
@foreach ( $working_days as $i => $working_day )
{!! Form::checkbox( 'working_days[]',
$working_day,
!in_array($working_days[$i],$saved_working_days),
['class' => 'md-check', 'id' => $working_day]
) !!}
{!! Form::label($working_day, $working_day) !!}
@endforeach
//$saved_working_days is an array of days (have 7 days, checked & unchecked)
J'ai passé du temps à comprendre comment gérer plusieurs cases à cocher, j'espère que cela peut aider quelqu'un :)
dans FormBuilder.php
public function checkbox($name, $value = 1, $checked = null, $options = array())
{
return $this->checkable('checkbox', $name, $value, $checked, $options);
}
{{ Form::checkbox('asap',null,$offer->ASAP, array('id'=>'asap')) }}
votre commande est erronée.
cA devrait etre,
{{ Form::checkbox('asap',$offer->ASAP, null, array('id'=>'asap')) }}