【问题标题】:How to use custom validation message Laravel?如何使用自定义验证消息 Laravel?
【发布时间】:2020-10-18 17:08:32
【问题描述】:

我为表单做了一个验证功能,但是没有显示错误,所有的验证和限制都可以,但是刀片页面中没有显示错误。

  $valid=$this->validate ($request,[
       'title'=>'required',
       'meta_description'=>'required|max:150',
       'body'=>'required|max:1000',
        'img' => 'required|image|mimes:jpeg,png,jpg|max:3024',
        'img_small' => 'required|image|mimes:jpeg,png,jpg|max:1024',

    ],[
        'title.required' => 'عنوانی برای مقاله ی خود انتخاب کنید',
        'meta_description.required'=>'توضیح مختصری برای پیشنمایش مقاله ی خود تعریف کنید',
        'meta_description.max'=>'متن پیشنمایش نباید بیشتر از 150 کاراکتر باشد',
        'body.required'=>'تویضحات و محتوای مقاله را درج کنید',
        'body.max'=>'توضیحات نباید بیش از 1000 کاراکتر باشد',
        'img.required'=>'لطفا عکسی برای مقاله خود انتخاب کنید',
        'img.image'=>'فایل انتخاب شده باید یکی از فرمت های مربوط به عکس باشد',
        'img.mimes'=>'فایل انتخاب شده باید یکی از فرمت های مربوط به عکس باشد',
        'img.max'=>'حجم عکس نباید بیشتر از 3 مگابایت باشد',
        'img_small.required'=>'لطفا عکسی پیشنمایش برای مقاله خود انتخاب کنید',
        'img_small.image'=>'فایل انتخاب شده باید یکی از فرمت های مربوط به عکس باشد',
        'img_small.mimes'=>'فایل انتخاب شده باید یکی از فرمت های مربوط به عکس باشد',
        'img_small.max'=>'حجم عکس نباید بیشتر از 1 مگابایت باشد',
    ]);

例如在我的刀片页面中:

 <div class="form-group">
                       <label class="form-label">title</label>
                       <input type="text" class="form-control" name="title" {{old ('title')}}>
                      @if($errors->has('title'))
                       <span class="invalid-feedback" style="color: red;" role="alert">
                                    <strong>{{ $errors->first('title') }}</strong>
                                </span>
                     @endif
                   </div>

【问题讨论】:

  • 您是否检查了我的答案,因为我已经测试过它并且它的字很好!?
  • 不,它不能正常工作......我在 laravel 中测试了所有可能的方式......我只是这个问题 jon laravel 6 @Nazari
  • 我使用 dd() 并收到消息,但在刀片页面中它们是不可观察的 @Nazari

标签: laravel validation laravel-6


【解决方案1】:

您可以在您的控制器中使用此示例代码添加您的自定义消息,我还向它添加条件以检查您的意思是代码可以放置在条件之后的规则。

$rules = [
    'title'=>'required',
    'meta_description'=>'required|max:150',
    'body'=>'required|max:1000',
    'img' => 'required|image|mimes:jpeg,png,jpg|max:3024',
    'img_small' => 'required|image|mimes:jpeg,png,jpg|max:1024',
];

$messages = [
    'title.required' => 'عنوانی برای مقاله ی خود انتخاب کنید',
    'meta_description.required'=>'توضیح مختصری برای پیشنمایش مقاله ی خود تعریف کنید',
    'meta_description.max'=>'متن پیشنمایش نباید بیشتر از 150 کاراکتر باشد',
    'body.required'=>'تویضحات و محتوای مقاله را درج کنید',
    'body.max'=>'توضیحات نباید بیش از 1000 کاراکتر باشد',
    'img.required'=>'لطفا عکسی برای مقاله خود انتخاب کنید',
    'img.image'=>'فایل انتخاب شده باید یکی از فرمت های مربوط به عکس باشد',
    'img.mimes'=>'فایل انتخاب شده باید یکی از فرمت های مربوط به عکس باشد',
    'img.max'=>'حجم عکس نباید بیشتر از 3 مگابایت باشد',
    'img_small.required'=>'لطفا عکسی پیشنمایش برای مقاله خود انتخاب کنید',
    'img_small.image'=>'فایل انتخاب شده باید یکی از فرمت های مربوط به عکس باشد',
    'img_small.mimes'=>'فایل انتخاب شده باید یکی از فرمت های مربوط به عکس باشد',
    'img_small.max'=>'حجم عکس نباید بیشتر از 1 مگابایت باشد',
];

$validator = Validator::make($request->all(), $rules, $messages);
if ($validator->fails()) {
    return redirect()
        ->back()
        ->withErrors($validator)
        ->withInput($request->all());
}
 
// your main controller code can be wrote here 
        

然后在您的刀片视图页面中添加以下代码用于显示错误:

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

【讨论】:

  • 别忘了在控制器顶部添加Validatoruse Illuminate\Support\Facades\Validator;
【解决方案2】:

根据 Laravel 的版本,从 Laravel 5.5 及更高版本开始,您应该调用

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

代替:

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

这可能是你的问题?

【讨论】:

    猜你喜欢
    • 2021-11-14
    • 2014-05-31
    • 2017-06-28
    • 2017-12-13
    • 2020-07-18
    • 2013-09-03
    • 1970-01-01
    • 2019-02-11
    • 2016-01-29
    相关资源
    最近更新 更多