【问题标题】:How to get multiple selected values of select box in laravel?如何在laravel中获取选择框的多个选定值?
【发布时间】:2020-03-21 15:48:36
【问题描述】:

我有一个 html 表单,它有一个选择列表框,您可以从中选择多个值,因为它的 multiple 属性设置为 multiple。考虑表单方法是'POST'但我有这个错误:

(数组到字符串的转换)

表单的html代码如下:

<body>
<form action="{{route('info.create')}}" method="post">
  <select name="ary[]" multiple="multiple">
    <option value="Option 1"> Option 1 </option>
    <option value="Option 2"> Option 2 </option>
    <option value="Option 3"> Option 3 </option>
    <option value="Option 4"> Option 4 </option>
    <option value="Option 5"> Option 5 </option>
  </select>
  <input type="submit">
</form>
</body>

我想在 info.create 页面的选择列表框中发布选定的值。那么请问我该如何解决这个错误呢?

我的控制器代码是:

$info=new Info();
$info->Risques=$request['ary'];

【问题讨论】:

  • 你需要循环遍历。
  • 分享您的控制器代码。你在那里得到错误。可能您正在将数组分配给列。
  • 您没有向我们展示导致错误的代码,但是无论您在哪里使用输出,都需要遍历您拥有的数组并单独输出每个元素。 PHP 不知道如何将数组表示为字符串。
  • 我的控制器代码 $info->Risques=$request['ary'];

标签: php laravel


【解决方案1】:

这是调用 create 方法或 Eloquent 时模型中的类型转换问题。

您需要在模型中添加以下变体:

    /**
     * Typecast for protection.
     *
     * @var array
     */
    protected $casts = [
        'ary' => 'array',  // ary being your column name
    ];

如果您想查看请求在您的控制器中的方法中发送的内容,您可以这样做

$data = $request->all();
dd($data);

假设您的方法使用的是 Request 类 Request $request

【讨论】:

    【解决方案2】:

    我不是 laravel 开发者,但您需要像

    一样遍历选择列表
    if(!empty($_POST['ary'])){
        foreach($_POST['ary'] as $value){
            echo $value;
        }
    }
    

    做一个dd($_POST['ary']) #看看它的输出

    【讨论】:

      猜你喜欢
      • 2014-09-27
      • 1970-01-01
      • 2022-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-19
      相关资源
      最近更新 更多