我想看看是否選中了複選框或不在我的控制器中。我讀過這是要做的代碼Laravel 4,如何測試複選框是否被選中?
if (Input::get('attending_lan', true))
但是,即使取消選中該複選框,它也會返回true。
我想看看是否選中了複選框或不在我的控制器中。我讀過這是要做的代碼Laravel 4,如何測試複選框是否被選中?
if (Input::get('attending_lan', true))
但是,即使取消選中該複選框,它也會返回true。
假設你已經在你看來這種形式的代碼:
// view.blade.php
{{ Form::open() }}
{{ Form::checkbox('attending_lan', 'yes') }}
{{ Form::submit('Send') }}
{{ Form::close() }}
你可以得到複選框的這樣的值:
if (Input::get('attending_lan') === 'yes') {
// checked
} else {
// unchecked
}
這裏的關鍵是,你要設置的值在視圖中創建複選框時(在該示例中,值將爲yes
),然後在控制器中檢查該值。
謝謝合作完美。 –
還應該注意的是,如果attending_lan未被選中,您將不會收到錯誤。這與標準的PHP不同,如果你查詢一個unchecked attending_lan,你會得到變量not found。 – Puzbie
使用Input::has('attending_lan')
一般來說,如果該複選框被選中,請求變量會存在。如果情況並非如此,那麼代碼中的其他地方就有問題。
也初步認識:Does <input type="checkbox" /> only post data if it's checked?
另一種方法是檢查數組關鍵看它是否存在,因爲如果沒有選中的輸入::獲得(「密鑰」)可能會給你的問題給出了一個未定義的指數在輸入數組中。
$input = Input::all();
if(array_key_exists($input('key',$input)){
// Checked
}else{
// Not Checked
}
或..類似的東西。我有點sl but,但我希望它能幫助別人。
if(filter_var(Input::get('attending_lan'), FILTER_VALIDATE_BOOLEAN)){
FILTER_VALIDATE_BOOLEAN過濾器將值驗證爲布爾選項。
可能的返回值:
'輸入::得到( 'attending_lan',虛假)'會的工作,或者'輸入::得到( 'attending_lan', '0')' – Mei