【问题标题】:Set default value to Form:text() in Laravel在 Laravel 中将默认值设置为 Form:text()
【发布时间】:2014-04-11 10:18:57
【问题描述】:

嗯,我很迷茫如何实现这种行为。在我看来,我有这个:

Form::text('time', Input::old('time'));

所以,所有表单验证器都失败了,视图再次呈现,time 输入具有用户过去键入的值...这里一切正常。

我想要做的是从一开始就在时间输入中显示一个默认值,如下所示:

time:  [ now      ]

但是如果用户更改了“now”这个词并且验证器失败了,我想显示用户提交的文本而不是“now”。

【问题讨论】:

    标签: php html laravel laravel-4


    【解决方案1】:

    使用 Laravel 4,您不必明确告诉它加载旧数据,因为您使用的是 Form::text 宏,它会为您执行此操作。

    所以这样的事情对你有用:

    Form::text('time', 'now');
    

    这会将“现在”设置为默认值,但如果Input::old('time') 中有一个值,它将神奇地显示为默认值。

    您需要确保将表单with input 重定向回,如下所示:

    return Redirect::route('your.route')->withInput();
    

    如果你想了解这背后的魔力,请查看代码here,然后是here,最后是here

    【讨论】:

    • 非常感谢。我已将您的答案与控制器中的这一行结合起来:return Redirect::to("edit/article/3")->withInput()->withErrors($validator);
    • 完美,对不起,我应该提到通过输入返回,将修改答案以显示此
    猜你喜欢
    • 2017-01-16
    • 2018-11-23
    • 2018-08-30
    • 2019-10-29
    • 1970-01-01
    • 1970-01-01
    • 2022-11-05
    • 2014-12-05
    • 2021-01-15
    相关资源
    最近更新 更多