ste*_*ve 5 php laravel laravel-5 laravelcollective
我目前正在使用laravelcollective插件渲染和填充laravel 中的表单.这是按预期工作:
{!! Form::model($user, ['action' => 'user@updateUser']) !!}
<div class="form-group">
{!! Form::label('user_name', 'Name') !!}
{!! Form::text('user_name') !!}
</div>
<button class="btn btn-success" type="submit">Update</button>
{!! Form::close() !!}
Run Code Online (Sandbox Code Playgroud)
上面的代码生成表单并使用用户名填充输入字段.
如果我想将一个类属性添加到表单输入,如下所示:
{!! Form::text('user_name', '', ['class' => 'form-control']) !!}
Run Code Online (Sandbox Code Playgroud)
它没有填充输入值,因为理论上我已将默认值(第二个参数)设置为''
.
有没有一种方法可以填充值并添加一个类而不显式地这样做:
{!! Form::text('user_name', $user->user_name, ['class' => 'form-control']) !!}
Run Code Online (Sandbox Code Playgroud)
通过这样做上述这违背了通过模型呈现形式的对象{!! Form::model($user, ['action' => 'user@updateUser']) !!}
,因为我可能也解析$user
为一个变量到模板,我不想做的事.
然后你可以使用空白null
代替""
{!! Form::text('user_name', null , ['class' => 'form-control']) !!}
Run Code Online (Sandbox Code Playgroud)
您还可以使用old
函数
{!! Form::text('user_name', $user->user_name or old('user_name'), ['class' => 'form-control']) !!}
Run Code Online (Sandbox Code Playgroud)
这$user->user_name or old('user_name')
可以表示为
如果$user->user_name
存在,则输入值,$user->user_name
否则检查第一次old input
是否为""
空,如果出现任何错误则重定向回来,则具有一些值。
或者简单地使用isset
方法或在 php 7 中使用$user->user_name ?? ''
{!! Form::text('user_name', $user->user_name ?? '', ['class' => 'form-control']) !!}
Run Code Online (Sandbox Code Playgroud)