繁体   English   中英

如何从数据库 Laravel 存储和检索关联数组

[英]How to store and retrieve associative array from database Laravel

我正在尝试存储每一天的统计数据和结束时间。 这些 Select 元素指的是“开始时间”和“结束时间”我能够获取这些值,但我不确定如何在我的视图中存储和检索它们。 我通过将 arrays 与天数分别组合然后json_encode来存储它们,但我无法检索它们。

存储刀片视图

<div class="form-check">
                                            <input class="form-check-input" type="checkbox" name="days[]" value="Monday" id="flexCheckDefault">
                                            <label class="form-check-label" for="flexCheckDefault">
                                                Monday
                                            </label>

                                            <div class="reveal-if-active">
                                                <div class="row">
                                                    <div class="col-md-4">
                                                        <label for="which-dog">From</label>
                                                        <select name="from[]" class="form-control">
                                                            <option value="1">01:00</option>
                                                            <option value="2">02:00</option>
                                                            <option value="3">03:00</option>
                                                            <option value="4">04:00</option>
                                                            <option value="5">05:00</option>
                                                            <option value="6">06:00</option>
                                                            <option value="7">07:00</option>
                                                            <option value="8">08:00</option>
                                                            <option value="9">09:00</option>
                                                            <option value="10">10:00</option>
                                                            <option value="11">11:00</option>
                                                            <option value="12">12:00</option>
                                                            <option value="13">13:00</option>
                                                            <option value="14">14:00</option>
                                                            <option value="15">15:00</option>
                                                            <option value="16">16:00</option>
                                                            <option value="17">17:00</option>
                                                            <option value="18">18:00</option>
                                                            <option value="19">19:00</option>
                                                            <option value="20">20:00</option>
                                                            <option value="21">21:00</option>
                                                            <option value="22">22:00</option>
                                                            <option value="23">23:00</option>
                                                            <option value="24">24:00</option>
                                                        </select>
                                                    </div>
                                                    <div class="col-md-4">
                                                        <label for="which-dog">To</label>
                                                        <select name="to[]" class="form-control">
                                                            <option value="1">01:00</option>
                                                            <option value="2">02:00</option>
                                                            <option value="3">03:00</option>
                                                            <option value="4">04:00</option>
                                                            <option value="5">05:00</option>
                                                            <option value="6">06:00</option>
                                                            <option value="7">07:00</option>
                                                            <option value="8">08:00</option>
                                                            <option value="9">09:00</option>
                                                            <option value="10">10:00</option>
                                                            <option value="11">11:00</option>
                                                            <option value="12">12:00</option>
                                                            <option value="13">13:00</option>
                                                            <option value="14">14:00</option>
                                                            <option value="15">15:00</option>
                                                            <option value="16">16:00</option>
                                                            <option value="17">17:00</option>
                                                            <option value="18">18:00</option>
                                                            <option value="19">19:00</option>
                                                            <option value="20">20:00</option>
                                                            <option value="21">21:00</option>
                                                            <option value="22">22:00</option>
                                                            <option value="23">23:00</option>
                                                            <option value="24">24:00</option>
                                                        </select>
                                                    </div>
                                                </div>
                                            </div>

                                        </div>
                                        <div class="form-check">
                                            <input class="form-check-input" type="checkbox" name="days[]" value="Tuesday" id="flexCheckChecked">
                                            <label class="form-check-label" for="flexCheckChecked">
                                                Tuesday
                                            </label>

                                            <div class="reveal-if-active">
                                                <div class="row">
                                                    <div class="col-md-4">
                                                        <label for="which-dog">From</label>
                                                        <select name="from[]" class="form-control">
                                                            <option value="1">01:00</option>
                                                            <option value="2">02:00</option>
                                                            <option value="3">03:00</option>
                                                            <option value="4">04:00</option>
                                                            <option value="5">05:00</option>
                                                            <option value="6">06:00</option>
                                                            <option value="7">07:00</option>
                                                            <option value="8">08:00</option>
                                                            <option value="9">09:00</option>
                                                            <option value="10">10:00</option>
                                                            <option value="11">11:00</option>
                                                            <option value="12">12:00</option>
                                                            <option value="13">13:00</option>
                                                            <option value="14">14:00</option>
                                                            <option value="15">15:00</option>
                                                            <option value="16">16:00</option>
                                                            <option value="17">17:00</option>
                                                            <option value="18">18:00</option>
                                                            <option value="19">19:00</option>
                                                            <option value="20">20:00</option>
                                                            <option value="21">21:00</option>
                                                            <option value="22">22:00</option>
                                                            <option value="23">23:00</option>
                                                            <option value="24">24:00</option>
                                                        </select>
                                                    </div>
                                                    <div class="col-md-3">
                                                        <label for="which-dog">To</label>
                                                        <select name="to[]" class="form-control">
                                                            <option value="1">01:00</option>
                                                            <option value="2">02:00</option>
                                                            <option value="3">03:00</option>
                                                            <option value="4">04:00</option>
                                                            <option value="5">05:00</option>
                                                            <option value="6">06:00</option>
                                                            <option value="7">07:00</option>
                                                            <option value="8">08:00</option>
                                                            <option value="9">09:00</option>
                                                            <option value="10">10:00</option>
                                                            <option value="11">11:00</option>
                                                            <option value="12">12:00</option>
                                                            <option value="13">13:00</option>
                                                            <option value="14">14:00</option>
                                                            <option value="15">15:00</option>
                                                            <option value="16">16:00</option>
                                                            <option value="17">17:00</option>
                                                            <option value="18">18:00</option>
                                                            <option value="19">19:00</option>
                                                            <option value="20">20:00</option>
                                                            <option value="21">21:00</option>
                                                            <option value="22">22:00</option>
                                                            <option value="23">23:00</option>
                                                            <option value="24">24:00</option>
                                                        </select>
                                                    </div>
                                                </div>
                                            </div>
                                        </div>

controller

**ADD FUNCTION**

$from = json_encode(array_combine($request->days, $request->from));
$to = json_encode(array_combine($request->days, $request->to));

$business->hrs_from = $from;
$business->hrs_to = $to;

**EDIT FUNCTION**

dd((json_decode($businesses[0]->hrs_from)));

Response From Dump Die

{#1130 ▼
  +"Monday": "1"
  +"Tuesday": "1"
  +"Thursday": "1"
  +"Wednesday": "1"
}

将第二个参数添加到 json_decode 以获取数组

dd((json_decode($businesses[0]->hrs_from, true)));

您可以在 html 表单输入名称中使用嵌套的 arrays。 例如:

from[day][]
from[time][]

甚至:

from[day][0][]
from[time][0][]
from[day][1][]
from[time][1][]

它应该正确到达后端。 不确定这是否有帮助?

我发现它对具有大量数据的 php 代码特别有用,尤其是在表格中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM