2014-09-04 23 views
0

我有一些複選框存儲爲0未選中或1存儲爲布爾值。來自數據庫的PHP/Laravel 4 echo複選框值存儲爲布爾型

我現在想回顯使用laravel值,例如

echo $request->facebook 

它返回1或0。它不返回「臉譜」的價值。

在我看來,我有:

<input type="checkbox" value="facebook" name="facebook" class="css-checkbox" /> 

在我的模型我有這樣的:

$request->facebook = Input::has('facebook'); 
$request->save(); 

該模型將檢查形式的複選框Facebook和保存在數據庫中的布爾值。

如果複選框被選中或回顯出任何內容(如果複選框未被選中),回顯「facebook」的最佳方式是什麼?

+0

如果複選框被選中,您想要回顯字符串「臉譜」? – 2014-09-05 00:26:16

回答

0

這是我在控制器的複選框做:

$object = new MyObject; 

$object->facebook = Input::has('facebook') ? 1 : 0; 
$object->twitter = Input::has('twitter') ? 1 : 0; 
$object->somethingElse = Input::has('someCheckbox') ? 1 : 0; 

$object->save(); 

可能有更好的方法來做到這一點,但是這是我通常做的。很容易閱讀和理解,並保持您的代碼組織。

我已經嘗試過使用增變器將這樣的東西移動到模型中,但我對使用模型上的Input類沒有把握。在你的控制器POST方法中,Input類總是會在那裏。總是會有Input來檢查和使用。但是在一些隨機模型方法中,您有可能在POST請求之外的某一天訪問該方法,然後沒有帖子輸入,因此諸如Input::has()之類的內容將返回false並將這些值設置爲零。

可能有一個更優雅的方式來做到這一點。我不確定是什麼。

+0

真的只是尋找最簡單的方法來做到這一點,因爲我有很多複選框!這意味着我需要大量的IF語句。這是我的問題。當你想回顯實際值時,布爾值是否爲複選框的正確方法? – AntonB 2014-09-04 18:38:02

+0

我明白你的意思了,讓我修改答案。 – 2014-09-04 18:56:46

+0

不知道這是如何幫助我改變值? – AntonB 2014-09-04 21:24:58