【问题标题】:Validate() message is not working in laravelValidate() 消息在 laravel 中不起作用
【发布时间】:2020-05-07 10:34:04
【问题描述】:

我的验证工作正常。但没有显示任何消息。我在下面提到。

在控制器中

$fields = collect([
    'monthly_fees',
    'admission',
    'due_advance',
    'session_fee',
    'library',
    'sports',
    'poor_funds',
    'fine',
    'reciept',
    'milad',
    'scout',
    'development',
    'registration',
    'f_tutorial',
    's_tutorial',
    't_tutorial',
    'f_exam',
    's_exam',
    't_exam',
    'labratory',
    'transport',
    'syllabus',
    'certificate',
    'testimonial',
    'generator',
    'extra'
]);

$rules = $fields->mapWithKeys(function ($field) use ($fields) {
    return [
        $field => 'required_without_all:' . $fields->reject(function ($item) use ($field) {
                return $item == $field;
            })->implode(',')
    ];
})->toArray();

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

在视图中

@if (count($errors) > 0)
    <div class="alert alert-danger">
        <ul class="text-center">
            @foreach($errors->all() as $error)
                <li>{{ $error }}</li>
            @endforeach
        </ul>
    </div>
@endif

我也在控制器中使用了这些代码行,但没有用。

if($this->validate()->fails()) {
   return redirect()->back()->with('error','Please Input minimum 1 field...');
}

我想做至少 1 个字段是必需的。我有 26 个输入字段。我总是将这些代码用于一次性使用。但这次要验证所需的最少一个字段。这些代码验证了所需但没有显示任何消息,尽管我提到了刀片中的错误。你能帮我解决这些错误吗?提前致谢。

【问题讨论】:

  • 您是否在路由中使用了 Web 中间件?看看这个链接stackoverflow.com/questions/36784253/…
  • 这没有任何意义。我没有使用网络路由。但我使用我的自定义中间件。用于登录验证。我现在应该怎么做才能显示消息?
  • 我的 laravel 版本是 6.18,但你的答案是 5.27。在这里,他在http/routes.php 内工作。但我没有这样命名的文件。

标签: php laravel validation


【解决方案1】:

我解决了我的问题。这里我使用了 $this->vatidate(...); 这对我来说是错误的。然后我使用了 Validator 包并在失败时返回带有重定向的自定义消息。然后它工作。

【讨论】:

    猜你喜欢
    • 2018-08-19
    • 2021-02-08
    • 2016-08-17
    • 2017-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-23
    • 2014-05-22
    相关资源
    最近更新 更多