Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

skryptoxy's avatar

htmlspecialchars(): Argument #1 ($string) must be of type string, array given

I have next function in request :

public function withValidator($validator)
    {
        $validator->after(function ($validator) {

            $dates = request()->get('start_at');

            foreach($dates as $date){
                if(isset($date)){
                    $startAt = Carbon::parse($date);

                    $endAt = $startAt->copy()->addMinutes(request()->get('duration') - 1);

                    $userId = request()->get('teacher_id');

                    $slotService = new SlotService();

                    $id = ! empty($this->route('lesson')) ? $this->route('lesson')->id : null;

                    if ($slotService->getTeacherLessons($userId, $startAt, $endAt, $id)->count() > 0) {
                        $validator->errors()->add('teacher_id', 'У данного учителя в этот период уже запланирован урок');
                    }

                    if (! $slotService->checkSlotIsAvailable($userId, $startAt, $endAt)) {
                        $validator->errors()->add('teacher_id', 'У данного учителя в этот период нет свободных часов');
                    }
                }
            }

        });
    }

How to fix it, and that's my html code :

<div class="form-group">
                {{ Form::label('start_at', trans('admin.date_start'), ['class' => 'col-sm-3 control-label no-padding-right']) }}
                <div class="col-sm-8">
                    <div class="input-group">
                        <input type="text" name="start_at[]" id="start_at" class="form-control date-picker"
                               data-date-format="DD.MM.Y HH:mm"
                               value="{{ isset($data) ? $data->start_at->format('d.m.Y H:i') : old('start_at', now()->format('d.m.Y H:i')) }}" />
                    </div>
                </div>
            </div>
0 likes
1 reply

Please or to participate in this conversation.