【发布时间】: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->id是字符串还是数组? -
$day->id 来自表 schedule_day,它用于 foreach 作为 $day。你问 id 是字符串
-
我放 start_time[],end_time[] 时发生错误。没有 [ ] 是可以工作的。
-
dd($request->start_time);的输出是什么? -
它是一个数组,你可以通过
$request->start_time[0];和$request->start_time[1];访问
标签: php laravel laravel-blade