【问题标题】:Save multiple checkbox - Laravel 5.4保存多个复选框 - Laravel 5.4
【发布时间】:2018-02-20 06:14:14
【问题描述】:

我需要将多个复选框保存到数据库中的单个字段。

            <div class="checkbox">
                <label>
                    <input type="checkbox" name="expresion_vegetal_id[]" value="1">Raíz
                </label>
            </div>

            <div class="checkbox">
                <label>
                    <input type="checkbox" name="expresion_vegetal_id[]" value="3">tronco
                </label>
            </div>
            <div class="checkbox">
                <label>
                    <input type="checkbox" name="expresion_vegetal_id[]" value="4">corteza
                </label>
            </div>

控制器:

$ficha_tecnica = new Ficha_Tecnica();
$options = $request->get('expresion_vegetal_id');
$ficha_tecnica->expresion_vegetal_id = $options;
$ficha_tecnica->save();

这是要保存,[""]中的值,我只需要保存数字

insert into `fichas_tecnicas` (`expresion_vegetal_id`) values (["1","3","4"])

当我尝试保存时,显示下一条消息

1366 Incorrect integer value: '["1","4"]' for column 'expresion_vegetal_id' 

【问题讨论】:

  • 我不熟悉Ficha_Tecnica 也不熟悉您的数据库,但阅读错误消息时您似乎遇到了类型错误。因此,要么将数据库字段更改为数组类型,要么将数组更改为整数。

标签: php mysql html checkbox laravel-5.4


【解决方案1】:

您不能添加它,因为 您可以尝试以数组格式循环 expresion_vegetal_id。 我在您的问题中看到您需要以字符串格式添加它。 您必须先循环该数组并一个一个保存,或者您可以使用 created

我给你使用循环的示例。 您的代码将如下所示

$ficha_tecnica = new Ficha_Tecnica();
foreach ($$request->expresion_vegetal_id as $expresion_vegetal_id) {
    $ficha_tecnica->fresh();
    $ficha_tecnica->expresion_vegetal_id = $expresion_vegetal_id;
    $ficha_tecnica->save();
}

我希望你能找到另一种相同的方式......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-29
    • 2018-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-11
    • 2021-01-10
    相关资源
    最近更新 更多