Сообщение о проверке не отображается после обновления версии laravel - PullRequest
1 голос
/ 12 января 2020

Я просто обновляю свою laravel версию с 5.4 до 6.0. После обновления я заметил, что все работает нормально, но сообщения проверки не отображаются. Я много искал, но не нашел решения. Пожалуйста, помогите мне решить эту проблему. Это мой код для контроллера магазина

public function store(Request $request)
    {
        $shifts = Shift::whereTime('in_time','=', $request->in_time)
            ->whereTime('out_time','=', $request->out_time)
            ->where('branch_id',$request->branch)->pluck('name');
        $rules = [
            'name' => [
                'required',
                Rule::unique('shifts','name')->where(function ($query) use ($shifts){
                    return $query->whereIn('name', $shifts);
                }),
            ],
            'in_time' => 'required',
            'out_time' => 'required',
            'checking_time' => 'required|after_or_equal:in_time|before:out_time',
            'status' => 'required',
            'branch' => 'required',
        ];

        $this->validate($request, $rules);

        // store
        $shift = new Shift();
        $shift->name = $request->name;
        $shift->branch_id = $request->branch;
        $shift->display_name = $request->display_name;
        $shift->in_time = database_formatted_time($request->in_time);
        $shift->out_time = database_formatted_time($request->out_time);
        $shift->last_check_in_time = database_formatted_time($request->checking_time);
        $shift->status = $request->status;
        $shift->created_by = Auth::user()->id;
        if ($shift->save()) {
            if ($request->default_shift)
            {
                $d_shift = new DefaultShift();
                $d_shift->shift_id = $shift->id;
                $d_shift->save();
            }
            return ['type' => 'success', 'title' => 'Success!', 'autoDataLoad' => route('load.shift'), 'message' => 'Shift Has been created Successfully'];
        }

        return ['type' => 'error', 'title' => 'Failed!', 'message' => 'Something wents wrong'];
    }

И я использую его вот так

<span class="text-danger">{{ $errors->first('name') }}</span>

1 Ответ

0 голосов
/ 12 января 2020

Относительно Laravel Документы проверки v6.x , я не могу найти ни одного маха с $this->validate($request, $rules);

Вместо этого используйте

$request->validate([
                //...
                'in_time' => 'required',
                'out_time' => 'required',
                'checking_time' => 'required|after_or_equal:in_time|before:out_time',
                'status' => 'required',
                'branch' => 'required',
                //...
]);

Вы также можете использовать директиву @error Blade, чтобы быстро проверить, существуют ли сообщения об ошибках валидации для данного атрибута.

@error('name')
    <div class="alert alert-danger">{{ $message }}</div>
@enderror
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...