0

我正在将 Laravel 用于一个项目,并且我正在尝试验证表单中的一些输入字段。我正在使用 Validator 类。

这是我的控制器中的代码。

$validator =   Validator::make($request->all(), [
    'arithmos_kinhths' => 'required',
    'kathgoria_kinhths' => ['required',Rule::notIn(['-'])],
    'prohgoumenos_paroxos_kinhths' => ['required',Rule::notIn(['-'])],
    'programma_kinhths' => ['required',Rule::notIn(['-'])],
    'project_kinhths' => ['required',Rule::notIn(['-'])],
    'kathogoria_epidothshs_kinhths' =>['required',Rule::notIn(['-'])],
    'talk_to_eu_kinhths' => ['required',Rule::notIn(['-'])],
    'pagio_kinhths' => 'required',
    'sms_kinhths' => ['required',Rule::notIn(['-'])],
    'internet_kinhths' => ['required',Rule::notIn(['-'])],
   'international_kinhths' => ['required',Rule::notIn(['-'])],
    'twin_sim_kinhths' => ['required',Rule::notIn(['-'])],
    'wind_unlimited_kinhths' => ['required',Rule::notIn(['-'])],
]);


if ($validator->fails()) {
    return back()->withErrors($validator)->withInput();
}

在刀片文件中,我试图使用下面的代码来捕获错误。

@if($errors->any())
    @foreach($errors->all() as $error)
    <script>
        $.notify(
            {
                title: '<strong>ERROR!</strong>',
                message: '{{$error}}',
            },
            {
                type: 'danger',
            },
        )
    </script>
    @endforeach
@endif

我也想使用将旧值放入输入字段{{old('value'}}

我遇到的问题是我不能同时结合错误和输入。如果我只返回使用withErrors($validator)错误的错误被打印出来。如果我只返回 withInput 我有帖子值。

有任何想法吗?

4

2 回答 2

0
withInputs()

试试这个,希望对你有帮助,或者你可以

return back()->with('errors',$validator)->withInputs()
于 2020-01-31T16:57:33.707 回答
0

您可以使用 $this->validatorWith([]) 然后按照您的代码,您不需要手动重定向回该页面。您的请求将自动重定向到发生请求的页面。该函数属于 Illuminate/Foundation/Validation/ValidatesRequests 的特性,由 app\Http\Controllers\Controller.php 使用。你只需要使用。有关此特征的更多信息,请参见此处ValidateRequest


$this->validatorWith([
    'request_param' => 'required',
]);
于 2020-01-31T17:16:26.943 回答