Laravel:获取复选框的值
Posted
技术标签:
【中文标题】Laravel:获取复选框的值【英文标题】:Laravel: Get values of checkboxes 【发布时间】:2017-06-17 10:09:30 【问题描述】:我在以下代码中有多个复选框:
@foreach($camera_video as $video)
<input type="checkbox" name="camera_video" value="$video->id"> <label>$video->name</label>
@endforeach
我想查看用户选中了哪些复选框。我只需要 id(值)来存储。在 Laravel 中执行此操作的最佳方法是什么?
【问题讨论】:
【参考方案1】:您可以在请求对象上使用 has 函数来检查复选框的值是否存在,而不是在请求中,如下所示;
public function store(Request $request)
if($request->has('terms'))
//Checkbox checked
else
//Checkbox not checked
多个;
public function store(Request $request)
if(in_array('Mango', $request->get('fruits')))
//User likes Mangos
else
//User does not likes Mango
$request->get('fruits') this will return the array;
【讨论】:
【参考方案2】:您应该将复选框输入的名称更新为 camera_video[]
作为数组,然后您就可以开始了。你会得到输入数组。
<input type="checkbox" name="camera_video[]" value="$video->id"> <label>$video->name</label>
如果你使用 Laravel 5.x.x 你应该使用 Request 对象:
public function yourMethod(Request $request)
$cameraVideo = $request->input('camera_video');
...
【讨论】:
我几乎明白了。在我的控制器中,我处理请求。我应该使用 $camera_video = Input::get('camera_video'); -> 有趣的是,当我写这行时,我得到一个 Http Error 500,没有任何错误提示...... 你使用什么版本的 Laravel? 我安装了一个新项目,应该是 5.4。但我认为我的存储写权限有问题。试图弄清楚 如果您的版本是 5 或更高版本,您应该使用请求对象...我会更新我的答案 对我有用。谢谢。但是当我的代码有错误时,我仍然需要弄清楚为什么会出现 500 服务器错误。【参考方案3】:你只需要将名称定义为一个数组,这样你就可以在 Laravel 中以数组的形式获取输入。像这样:
<input type="checkbox" name="camera_video[]" value="$video->id"> <label>$video->name</label>
【讨论】:
【参考方案4】:你可以使用
Input::all()
或
Input::get('camera_video')
【讨论】:
以上是关于Laravel:获取复选框的值的主要内容,如果未能解决你的问题,请参考以下文章
thinkphp中怎样获取radio单选框的值(单选框较多)
当当前输入等于数组内的值时,Laravel 验证 required_if(带有输入文本的复选框)