【问题标题】:Laravel 5 - Pre-Populate form using 'old'Laravel 5 - 使用“旧”预填充表单
【发布时间】:2018-10-03 23:41:04
【问题描述】:

我有一个表单输入,可以像这样在 Laravel 5 应用程序中编辑现有条目..

<input name="obj_email" type="text" value="{{$myobject->obj_email}}">

这可以正常工作,当表单加载时,它会预先填充值,但如果某些表单验证失败,当页面重新加载时,它会丢失我输入的电子邮件。

我试图通过这样做来修复它..

<input name="obj_email" type="text" value="{{old('obj_email')}}">

这有效,现在验证失败时不会丢失值但它不再在初始加载时预填充表单。

我哪里错了?

【问题讨论】:

    标签: laravel laravel-5


    【解决方案1】:

    您可以将第二个参数传递给 old() 帮助程序以提供默认值。所以你可以这样做:

    <input name="obj_email" type="text" value="{{old('obj_email',$myobject->obj_email)}}">
    

    因此,如果“旧”值可用,它将使用该值,否则它将使用您在第一次加载表单时提供的默认值。

    这是文档参考:

    https://laravel.com/docs/5.7/helpers#method-old

    【讨论】:

    • 谢谢,完美答案!
    【解决方案2】:

    您没有做错任何事情,但 old() 最初将为空,因为确实没有“旧”数据。试试这样的:

    <input name="obj_email" type="text" value="{{ old('obj_email')?: $myOjbect->obj_email }}">
    

    【讨论】:

      【解决方案3】:

      这是你需要实现的逻辑。

      如果有old('value'),则输入该值,否则输入$object-&gt;value

      这就是代码的样子

      <input name="obj_email" type="text"
          value="old('obj_email') ? old('obj_email') : $myObject->my_email">
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-09-08
        • 1970-01-01
        • 1970-01-01
        • 2021-06-30
        • 1970-01-01
        • 2012-07-20
        • 2017-01-23
        • 2013-04-01
        相关资源
        最近更新 更多