So che questa domanda è stato risposto in precedenza, in questo ho intenzione di spiegare passo per passo come implementare caselle con laravel/lama con diversi casi ...
Quindi, al fine di caricare le vostre caselle di controllo dal database o per verificare se una casella è selezionata:
Prima di tutto è necessario capire come funziona, come @itachi menzionato:
{{Modulo :: casella di controllo (primo argomento, secondo argomento, terzo argomento, 4 ° argomento)}}
- Primo argomento: nome
- Secondo argomento: valore
- Terzo argomento: registrato o non selezionato questo richiede: vero o falsa
- quarto argomento: attributi aggiuntivi (ad esempio, checkbox css classe)
Esempio:
{{ 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">
Come ottenere i valori delle caselle di controllo? (nel controller)
Methode 1:
public function store(UserCreateRequest $request)
{
$my_checkbox_value = $request['admin'];
if($my_checkbox_value === 'yes')
//checked
else
//unchecked
...
}
Metodo 2:
if (Input::get('admin') === 'yes') {
// checked
} else {
// unchecked
}
Nota: è necessario assegnare un valore predefinito per la casella non selezionata:
if(!$request->has('admin'))
{
$request->merge(['admin' => 0]);
}
questo è bello vero? ma come possiamo impostare le caselle spuntate nella nostra vista?
per le buone pratiche Io suggerisco di usare Form::model
quando si crea il modulo questa volontà valori di input di riempimento automatico che hanno gli stessi nomi come il modello (oltre che con diverse lame Modulo :: ingressi ..)
{!! Form::model($user, ['route' => ['user.update', $user->id], 'method' => 'put' ]) !!}
{!! Form::checkbox('admin', 1, null) !!}
{!! Form::close() !!}
è anche possibile ottenere in questo modo:
{{ Form::checkbox('admin',null, $user->admin) }}
Okey ora come affrontare:
- multipli caselle
- Aggiungi css classe
- Add casella id
- aggiungere l'etichetta
diciamo che vogliamo ottenere giorni lavorativi dal nostro database
$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)
Ho passato del tempo prima di capire come trattare con più caselle di controllo I spero che questo possa aiutare qualcuno :)
$ SPECIALE-> ASAP prendere valore dal database ed è 0 (FALSO) , quindi se ho scritto {{Form :: checkbox ('asap', null, $ offer-> asap)}} tutto funziona bene, ma se voglio ad alcuni id va sempre TRUE – lggg3
@ lggg3 Sei sicuro? Hai qualche JavaScript nella tua pagina? È possibile che JavaScript trovi l'elemento con l'ID 'asap' (se si dispone di tale script) e lo controlla (ovviamente a prescindere da ciò che si è passato in Laravel) –
È stato scritto ho trovato JavaScript nel codice che imposta sempre le caselle come true – lggg3