【问题标题】:Laravel blade "old input or default variable"?Laravel刀片“旧输入或默认变量”?
【发布时间】:2016-02-12 16:15:59
【问题描述】:

我想在输入值中显示旧输入。如果没有旧输入,则显示其他变量:

value="{{ old('salary_' . $employee->id) or 'Default' }}"

但是当没有旧输入时,它给我1而不是默认值!

我认为问题与串联有关,但我不知道如何解决它!?

【问题讨论】:

    标签: php laravel concatenation blade laravel-blade


    【解决方案1】:
    【解决方案2】:

    您可以使用代码(适用于 PHP 7):

    {{ old('field_name') ?? $model->field_name ?? 'default' }}
    

    对于复选框选中的属性,使用代码(如果默认值为 false):

    {{ (old() ? old('field_name', false) : $model->field_name ?? false) ? 'checked' : '' }}
    

    构造 {{ $something or 'default'}} 仅适用于变量

    【讨论】:

      【解决方案3】:

      试试这个:

      <textarea name="alamat" id="" class="form-control" placeholder="Alamat">{{ old('alamat').@$biodata->alamat }}</textarea>
      

      【讨论】:

      • 需要更详细的解释。
      • 这到底是什么
      【解决方案4】:

      如 Laravel 文档中所述:“如果您在 Blade 模板中显示旧输入,则使用旧助手更方便:”。 因此,如果您需要添加/编辑数据表单(当您需要使用编辑表单在编辑模式下添加和编辑时,您需要使用从模型(数据库)加载的数据)来显示模型中的值(通过控制器),您可以使用以下:

      name="some_value" value="{{ $some_value or old('some_value', $the_value) }}"
      

      视图数组中的“some_value_from_model”变量名称在哪里。 在这种情况下,首先应该使用 $some_value 来设置“值”,如果没有,它将尝试使用旧的(来自名称“some_value”的请求的值),如果不是旧的,那么 '' 应该是用过。

      感谢 WoodyDRN 的评论。

      【讨论】:

      • 但是如果你这样做 $some_value 或 old('some_value') - 那么如果用户在输入字段中输入任何内容并提交,并且出现错误,那么它将默认返回到 $some_value 并删除他们写的任何内容。 old('some_value', $some_value) 会解决这个问题。
      【解决方案5】:

      or 是 PHP 中的比较运算符,因此您的代码计算结果为 true,或 1。您想要的是三元 if 语句。

      如前所述,or 可以在刀片中用作三元 if 语句的简写。

      但是您可以(并且应该)将默认值作为第二个参数传递给函数,如下所示:

      value="{{ old('salary_' . $employee->id, 'Default') }}"
      

      【讨论】:

      • 现在有趣的事情来了;使用 {{ $value or $default }} 是在 Blade (Reference) 中执行三元语句的一种简写方式。因此,我不确定这是否正确。但是,它更清晰!
      • 在 Laravel 文档中: {{ isset($name) ? $name : 'Default' }} 简写方式 {{ $name or 'Default' }}
      • @ChrisForrence 你是对的!您每天都会学到一些东西...实现这一点的更好方法是将默认值作为第二个参数传递。
      • 这并不能解决问题。当旧输入为空时,它什么也不提供……第二个变量没有回显。
      • 谢谢!这正是我想要的。我当然希望 Laravel Docs 有更多的教程,但我想这就是 Laracasts 的原因。
      猜你喜欢
      • 2016-06-08
      • 2020-11-16
      • 2020-01-24
      • 2015-12-03
      • 2014-12-08
      • 2017-02-24
      • 2016-09-09
      • 2019-04-28
      • 2014-06-13
      相关资源
      最近更新 更多