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(带有输入文本的复选框)

Laravel 5 表单模型绑定复选框值

laravel 8 没有从 ajax 请求中获取数据

使用 laravel 和 vue js 从 mysql 数据库中检查带有逗号分隔值的复选框

JS如何获取表单中复选框的值?