【问题标题】:Error happened to appened javascript html code to blade template将 javascript html 代码附加到刀片模板时发生错误
【发布时间】:2021-04-27 11:47:24
【问题描述】:

错误

htmlspecialchars() expects parameter 1 to be string, array given (View: D:\Codes\Php\Laravel\appoint_now-master1\resources\views\staff\schedule\edit.blade.php) 

刀片代码

<form action="{{route('staff.schedule.AddHour',$day->id)}}" method="post"  id="formHours-{{ $day->id }}"  >
 @csrf
@method('put')
<input type="hidden"  value="{{$day->id}}" name="staff_schedule_day_id" required>
</form>

控制器代码

public function addHour(Request $request,$staffSchedule)
    {
        $user = auth()->guard(GuardType::STAFF)->user();

        $request->validate([
            'staff_schedule_day_id' => 'required',
            'start_time' => 'required',
            'end_time' => 'required',
        ]);

        $staffSchedulesDaysHours=new StaffScheduleDayHour();
        $staffSchedulesDaysHours->staff_schedule_day_id = $request->staff_schedule_day_id;
        $staffSchedulesDaysHours->start_time = $request->start_time;
        $staffSchedulesDaysHours->end_time = $request->end_time;
        $staffSchedulesDaysHours->save();


       

return view('staff.schedule.edit')->with('success', trans('messages.itemUpdated'));
    }

javascript


 function addHour(day_id)
                {
                    const id = `hour-${makeId(5)}`;
                    let html = "";
                    html += `<div class="input-group" id="${id}">`;
                    html += `<input type="time" class="form-control " value="" name="start_time[]"  required>`;
                    html += `<input type="time" class="form-control " value="" name="end_time[]"  required>`;
                    html += `<div class="input-group-append">`;
                    html += `<button class="btn btn-danger"  type="submit">`;
                    html += `Submit`;
                    html += `</button>`;
                    html += `<button class="btn btn-danger" type="button" onclick="removeHour('${id}')">`;
                    html += `<i class="fa fa-trash fa-fw"></i>`;
                    html += `</button>`;
                    html += `</div>`;
                    html += `</div>`;

                    $(`#formHours-${day_id}`).append(html);
                }

我尝试将 start_time 和 end_time 作为数组添加到我的数据库表 schedule_hours,因为 json 对象表列设置为 start_time 和 end_time 的 jason 对象。当我按下提交按钮时,它显示错误。 我忘了说小时模型也被保护为 start_time 和 end_time 的数组变量。我不知道错误来自哪里。请帮帮我

【问题讨论】:

  • $day-&gt;id 是字符串还是数组?
  • $day->id 来自表 schedule_day,它用于 foreach 作为 $day。你问 id 是字符串
  • 我放 start_time[],end_time[] 时发生错误。没有 [ ] 是可以工作的。
  • dd($request-&gt;start_time); 的输出是什么?
  • 它是一个数组,你可以通过$request-&gt;start_time[0];$request-&gt;start_time[1];访问

标签: php laravel laravel-blade


【解决方案1】:

尝试将$request-&gt;start_time 转换为json,然后再将其存储到数据库中。 使用

$staffSchedulesDaysHours->start_time = json_encode($request->start_time);
$staffSchedulesDaysHours->end_time = json_encode($request->end_time);

【讨论】:

  • 如何解码并显示json数组到刀片?
  • 发生错误。我照你说的做。但我不能向刀片显示那个值。
  • 您可以使用 json_decode() 解码 json。但是你不能直接在刀片上打印解码后的值,因为它是一个数组,你不能打印一个数组。
猜你喜欢
  • 2015-01-30
  • 2020-06-16
  • 2015-10-24
  • 1970-01-01
  • 2015-08-04
  • 2021-10-13
  • 2014-11-08
  • 2021-12-24
  • 2019-04-03
相关资源
最近更新 更多