存储来自多个输入字段的数组值-Laravel

时间:2019-07-18 04:32:06

标签: php html laravel

我要执行的是计划表在表中使用日期,开始时间和结束时间等输入字段表示。

在刀片文件中,我有一个数组,我为其分配了代表天(总共7天)的值。我放入数组的原因导致我不想编写html代码7次。我执行FOR循环以显示具有指定值的输入字段。

然后,我想根据每天输入另一个值,即“开始时间”和“结束时间”。

下面是我的代码

刀片式服务器


    <?php
          $days = array("Monday","Tuesday","Wednesday","Thursday","Friday","Satuday");
          $daylength=count($days);

          for($i=0; $i<$daylength; $i++)
          {
     ?>
            <tr>
            <td><input type="text" name="day[]" class="form-control" value="{{ $days[$i] }}" disabled/></td>
            <td><input type="time" name="start_time[]" class="form-control"/></td>
            <td><input type="time" name="end_time[]" class="form-control"/></td>
            <td></td>
            </tr>

    <?php } ?>

在控制器中

$days = $request->input('day');
$start_time = $request->input('start_time');
$end_time = $request->input('end_time');
$zone_id = $zone->id;

    for($count = 0; $count < count($days); $count++)
    {
        $data = array(
                'day' => $days[$count],
                'start_time'  => $start_time[$count],
                'end_time'  => $end_time[$count],
                'zone_id'  => $zone_id,
              );

        $insert_schedule[] = $data; 
     }
     Schedule::insert($insert_schedule);

我所期望的,它将输入值存储到数据库表中。问题是提交表单后,控制器请求空值。

显示的错误:

  

count():参数必须是实现的数组或对象   可数的

希望任何人都可以提供帮助。谢谢你。

4 个答案:

答案 0 :(得分:0)

更改

ID        Mark
  --------------
   1       AUS, BRA, CHN, ECE, EG,JAP,RUS

收件人

<input type="text" name="day[]" class="form-control" value="{{ $days[$i] }}" disabled/>

禁用的输入将不与表单请求一起提交。如果您不希望用户更改值,则必须使用其他技术。可以隐藏吗?

答案 1 :(得分:0)

已禁用的输入不会提交。如果要使其不能被用户编辑,则需要使用只读

<input type="text" name="day[]" class="form-control" value="{{ $days[$i] }}" readonly/>

答案 2 :(得分:0)

尝试一下:

 for ($i = 0; $i < $start_time; $i++) {
    foreach ($days as $day) {
      $insert_array[] = array(
      'day' => $day[$i ],
        'start_time'  => $start_time[$i ],
        'end_time'  => $end_time[$i ],
        'zone_id'  => $zone_id,
          );
         }
       }

答案 3 :(得分:0)

count()函数try中存在问题:

for($count = 0; $count < collect($days)->count(); $count++)
{
    $data = array(
            'day' => $days[$count],
            'start_time'  => $start_time[$count],
            'end_time'  => $end_time[$count],
            'zone_id'  => $zone_id,
          );

    $insert_schedule[] = $data; 
 }