【问题标题】:Laravel Form return old valueLaravel 表单返回旧值
【发布时间】:2018-04-17 09:21:15
【问题描述】:

我正在使用我正在使用 laravel 5.5laravel collective 来构建我的表单。

在验证期间,为了管理错误和恢复旧值,我使用了这种代码:

<div class="@if ($errors->has( $question->title )) has-error @endif">
    {!! Form::label($question->title, $question->title) !!}
    {!! Form::text($question->title, null, ['class' => 'form-control']) !!}
    @if ($errors->has($question->title)) <p class="help-block">{{ $errors->first($question->title) }}</p> @endif
</div>

一切运行良好。但是我遇到了一个问题,我的name 属性包含空格。

当页面显示时,我的name 属性用空格写得很好,例如Are you happy?

但验证返回错误提及Are_you_happy?,因此旧值不会被放回,并且由于_ 而不会显示错误消息。

我正在考虑使用正则表达式来“清理”表单中的值,但错误消息仍然是 The Are_you_happy? field is required. 所以不太好。

是否有任何技巧或更好的方法来进行? 还是有空格只是一种不好的做法?

更多信息

点字符 . 也会出现这种情况,在验证期间它会被 _ 替换。

【问题讨论】:

    标签: php forms laravel laravel-5


    【解决方案1】:

    使用空格是不好的做法,但这不是错误。

    您可以通过更改错误消息的输出来解决您的问题。

    来自documentation

    在语言文件中指定自定义属性

    如果您希望将验证消息的 :attribute 部分替换为自定义属性名称,您可以在 resources/lang/xx/validation 的属性数组中指定自定义名称.php 语言文件:

    'attributes' => [
        'email' => 'email address',
    ],
    

    你的情况

     'attributes' => [
            'Are_you_happy' => 'are you happy',
        ],
    

    【讨论】:

    • 最后,我在数据库中创建了一个新字段,所以我有了titlefield。通过使用它并编辑我的表单,一切都运行良好。不过谢谢你的建议!
    • 很高兴能帮上忙!
    猜你喜欢
    • 2017-05-02
    • 2021-07-20
    • 1970-01-01
    • 2020-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-19
    相关资源
    最近更新 更多