【问题标题】:Combining use of Laravel old helper with or将 Laravel 旧助手与 or 结合使用
【发布时间】:2019-07-04 08:29:33
【问题描述】:

说一下我想要达到的效果是这样的:

@if(isset($responseValue))
    {{ old("name", $responseValue) }}
@else
    {{ old("name"), "" }}
@endif

基本上说,如果设置了 $responseValue,那么我希望表单输入具有默认值 - 就像在表单编辑期间从现有值读取一样 - 并在用户输入新值并提交时更新为新的“名称”值并提交失败并闪回。否则,如果 $responseValue 没有设置,则不需要将 $responseValue 读入表单输入。

我的问题是我能得到一个更有效的等价物吗:

{{ old("name", $responseValue or "") }}

或许?

{{ old("name", $responseValue) or "" }}

我都试过了,但它们都不起作用。我想知道为什么在第一个示例的语法上,$responseValue 或 "" 不会在 old("name", $responseValue 或 "") 之前先被评估。我也尝试放入括号($responseValue 或“”)。

【问题讨论】:

    标签: laravel laravel-blade helper isset or-operator


    【解决方案1】:

    我使用了{{ old("name", $responseValue) or "" }},发现没问题。 如果您需要确定的方法。让我们试试下面的代码

    $oldValue = !isset($responseValue) ? old('name', '') : $responseValue;
    

    【讨论】:

    • 我刚试过 {{ old("test_name", $foo) 或 "Empty value" }},其中 $foo 为空。它没有用。我收到错误“4eac12e0142e3bff4009bc7b11fc0e1e695743c6.php 第 137 行中的 ErrorException:未定义变量:foo”。我正在使用 Laravel 5.4
    【解决方案2】:

    旧助手使用第二个参数作为后备。

    old("name", $responseValue)
    

    如果“name”没有设置,会输出$responsevalue

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-29
      • 2011-04-10
      • 2015-02-14
      相关资源
      最近更新 更多