isset(在laravel中输入:: old('abc')

时间:2013-09-17 01:27:42

标签: php laravel

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

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

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

  

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

尝试使用isset,trim,empty但没有任何方法可行。 问题是什么?

4 个答案:

答案 0 :(得分:7)

你可以简单地使用这个

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

Input::old()可选择使用默认值。如果旧值可用,那么旧值将用于其他deafult值。

答案 1 :(得分:4)

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

最简单的解决方案是:

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

如果未设置fullname,则返回null

或者:

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

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

答案 2 :(得分:3)

您尚未关闭括号:

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

此外,输入将返回null(未定义),我也改变了它。

答案 3 :(得分:1)

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

示例:

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