2014-09-04 21 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