isset(Input::old('abc') in laravel


isset(Input::old('abc') in laravel

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

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

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

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

一直在尝试使用isset,修剪,空,但没有任何效果。怎么了?

你可以

简单地使用它

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

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

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

最简单的解决方案是:

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

如果未设置全名,这将返回null

或者:

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

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

您尚未关闭括号:

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

此外,输入将返回一个 null(未定义),我也对其进行了更改。

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

例:

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