3

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

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

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

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

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

4

4 回答 4

7

你可以简单地使用这个

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

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

于 2013-09-17T01:43:09.950 回答
4

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

最简单的解决方案是:

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

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

或者 :

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

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

于 2013-09-17T01:37:57.837 回答
3

你还没有关闭你的括号:

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

此外,输入将返回一个空值(不是未定义的),我也改变了它。

于 2013-09-17T01:31:54.293 回答
2

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

例子:

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

于 2019-03-13T08:36:22.480 回答