【问题标题】:laravel 9 form validation error has space between field namelaravel 9 表单验证错误在字段名称之间有空格
【发布时间】:2023-02-16 18:39:12
【问题描述】:

如上传图片中所述,在 laravel 9 的刀片模板中显示错误时,字段名称的每个字符后都有空格

我的代码如下所述

HTML 中的代码是:

<form action="{{route('saveAsset')}}" method="post">
                {{@csrf_field()}}
                
                <div class="form-group">
                    <label for="assetTitle" class="mt-2 mb-2">{{$assetCategory->category}} TITLE :</label>
                    <input type="text" class="form-control" name="assetTitle" id="assetTitle" placeholder="Enter Asset Title">
                </div>
                <div class="inputError">@error('assetTitle') Error: {{ $message }} @enderror </div>

                <input type="hidden" name="assetCateId" id="assetCateId" value="{{$assetCategory->id}}">
                
                @if(count($attributes) > 0)
                    @foreach($attributes as $attribute)
                        <label for="assetType-{{$attribute->attr_id}}" class="mt-4 mb-2">{{$attribute->attr_title}} : </label>
                        <div class="form-group">
                            <select class="form-select" name="{{$attribute->attr_title}}" id="attribute-{{$attribute->attr_id}}" aria-label="Default select example">
                                <option value="">Select {{$attribute->attr_title}}</option>
                                @foreach($attrValues as $attrValue)
                                    @if ($attrValue->attr_id == $attribute->attr_id && strlen($attrValue->value) > 0 )
                                    <option value="{{$attribute->attr_id}}-{{$attrValue->value_id}}" > {{$attrValue->value}}</option>
                                    @endif
                                @endforeach
                            </select>
                        </div>
                        <div class="inputError"> @error("{$attribute->attr_title}") Error: {{ $message }} @enderror </div>
                    @endforeach
                @endif
                <div>
                    <button type="submit" class="btn btn-primary mt-3 px-4">Save</button>
                </div>
            </form>

控制器中的代码是:

$fields = $req->input();
       

        $ValidationRules=[];
        foreach($fields as $fieldName=>$fieldvalue){
            
            if($fieldName == "assetTitle"){
                $ValidationRules[$fieldName] = 'required|unique:assets,title';
            }else{
                $ValidationRules[$fieldName] = 'required';
            }
        }
        $req->validate($ValidationRules);

【问题讨论】:

  • 也许是 CSS 问题? :/
  • 这听起来像是自定义验证消息的问题。你能检查一下吗?

标签: php laravel laravel-9 laravel-form laravel-formrequest


【解决方案1】:

我猜你在resources/lang/en/validation.php 文件中做了一些更改。 在这种语言或您设置的任何语言中,都有一个名为attributes 的属性 您可以更改错误消息中显示的属性名称。 因为asset字段的错误信息是可以的我不认为这是一个普遍的错误。检查此文件并在其中键入 attributesmessages

【讨论】:

    【解决方案2】:

    不知道你是否还需要帮助,但我只是遇到了同样的问题,我认为这是因为你的输入名称可能带有大写文本,laravel 在显示错误时会自动为 name 属性中的每个大写字符添加一个空格。

    例如: 名称=“这个模型”

    将显示为: ...这个模型...

    如果你有: 名称=“型号”

    将显示为: ... 模型 ...

    希望这对将来的某人有所帮助 x)

    【讨论】:

      猜你喜欢
      • 2021-08-14
      • 1970-01-01
      • 1970-01-01
      • 2016-09-09
      • 1970-01-01
      • 2016-01-25
      • 2014-10-01
      • 2023-03-29
      • 1970-01-01
      相关资源
      最近更新 更多