保存多个复选框 - Laravel 5.4

时间:2017-09-11 22:36:53

标签: php mysql html5 checkbox laravel-5.4

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

            <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' 

1 个答案:

答案 0 :(得分:0)

你无法添加,因为 您可以尝试以数组格式循环expresion_vegetal_id。 我在你的问题中看到你需要以字符串格式添加它。 您必须首先循环该数组并逐个保存,否则您可以使用已创建的

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

$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();
}

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