【问题标题】:isset(Input::old('abc') in laravelisset(输入::old('abc') 在 laravel
【发布时间】:2013-09-21 07:17:27
【问题描述】:

我在 something.blade.php 中使用的代码是

{{ Form::text('fullname', isset(Input::old('fullname'))?Input::old('fullname'):$hello[1] }}

但我不确定为什么它会返回以下错误

不能在写上下文中使用函数返回值

一直在尝试使用 isset、trim、empty 但没有任何效果。 有什么问题?

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    您可以添加第二个参数作为默认值,也可以对其设置条件。

    示例:

    old('field_name', 'default)old('field_name', $user ? $user->field_name : '' )

    【讨论】:

    • 您忘记了第一个示例中的字符串结束符号;)但是很好的答案
    【解决方案2】:

    你可以简单地使用它

    {{ Form::text('fullname', Input::old('fullname', $hello[1] ?: '' ) }}
    

    Input::old() 采用默认值,可选。如果旧值可用,则将使用旧值而不是默认值。

    【讨论】:

      【解决方案3】:

      isset 很奇怪。您不能在其中使用函数,因为它不是用于测试函数是否返回值,而是用于测试变量是否实际设置。

      最简单的解决方案是:

      if(Input::old('fullname'))
      

      如果未设置全名,则返回 null

      或者:

      $old = Input::old();
      isset($old['fullname']) ...
      

      (我建议将变量从控制器传递到视图中,而不是在视图中使用函数调用(当然也有一些例外)

      【讨论】:

        【解决方案4】:

        你还没有关闭你的括号:

        {{ Form::text('fullname', Input::old('fullname') ? Input::old('fullname') : $hello[1]) }}
        

        此外,输入将返回 null(不是未定义),我也已更改。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-05-28
          • 1970-01-01
          • 2021-01-21
          • 1970-01-01
          • 2020-07-30
          • 1970-01-01
          • 1970-01-01
          • 2014-11-21
          相关资源
          最近更新 更多