来自数据库的PHP / Laravel 4 echo复选框值存储为boolean

时间:2014-09-04 18:33:14

标签: php html laravel laravel-4

我有一些复选框,存储为0表示未选中,或者1表示已检查为布尔值。

我现在正试图使用​​laravel(例如

)回显这些值
echo $request->facebook

返回1或0.它不返回“facebook”的值。

在我看来,我有:

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

在我的模型中,我有这个:

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

模型将检查复选框facebook的表格,并将布尔值保存在数据库中。

如果选中复选框,则回显“facebook”的最佳方法是什么,如果未选中该复选框,则回显任何内容?

1 个答案:

答案 0 :(得分: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();

可能有更好的方法,但这是我通常做的。它易于阅读和理解,并使您的代码井井有条。

我已尝试使用mutators将这样的事情移动到模型中,但我不确定在模型上使用Input类。在你的控制器POST方法中,Input类总是在那里。总是会有Input来检查和使用。但是在一些随机模型方法中,你可能有一天在POST请求之外访问该方法,然后没有post输入,所以像Input::has()这样的东西将返回false并将这些值设置为零。

可能有更优雅的方式来做到这一点。我不确定是什么。