php - guardar - Laravel 4, ¿cómo probar si se marca una casilla de verificación?
request laravel (4)
Suponiendo que tiene este código de formulario en su vista:
// view.blade.php
{{ Form::open() }}
{{ Form::checkbox(''attending_lan'', ''yes'') }}
{{ Form::submit(''Send'') }}
{{ Form::close() }}
Puede obtener el valor de la casilla de verificación de esta manera:
if (Input::get(''attending_lan'') === ''yes'') {
// checked
} else {
// unchecked
}
La clave aquí es que debe establecer un valor al crear la casilla de verificación en su vista (en el ejemplo, el valor sería yes
) y luego verificar ese valor en su controlador.
Estoy tratando de ver si una casilla de verificación está marcada o no en mi controlador. He leído que este es el código para hacerlo
if (Input::get(''attending_lan'', true))
Pero eso vuelve verdadero incluso si la casilla de verificación está desmarcada.
Una alternativa es verificar la clave de matriz para ver si existe, dado que cuando no está marcada, una entrada :: get (''clave'') puede ocasionarle problemas dado que es un índice indefinido en la matriz de entrada.
$input = Input::all();
if(array_key_exists($input(''key'',$input)){
// Checked
}else{
// Not Checked
}
O algo así. Estoy un poco descuidado, pero espero que pueda ayudar a alguien.
if(filter_var(Input::get(''attending_lan''), FILTER_VALIDATE_BOOLEAN)){
El filtro FILTER_VALIDATE_BOOLEAN valida el valor como una opción booleana.
Posibles valores de retorno:
- Devuelve VERDADERO para "1", "verdadero", "encendido" y "sí", y versiones en mayúsculas.
- Devuelve FALSE para las versiones "0", "falso", "apagado" y "no" y mayúsculas.
- Devuelve NULL de lo contrario.
fuente: http://www.w3schools.com/php/filter_validate_boolean.asp
Use Input::has(''attending_lan'')
En términos generales, si la casilla de verificación está marcada, la variable de solicitud existirá. Si ese no es el caso, tienes un problema en otro lugar del código.
También relacionado: ¿<tipo de entrada = "casilla de verificación" /> solo publica datos si está marcado?