我目前正在渲染并填充laravel using the laravelcollective plugin中的表单。这是按预期工作的:
{!! 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() !!}
上面的代码生成表单并使用用户名填充输入字段。
如果我想将类属性添加到表单输入中,如下所示:
{!! Form::text('user_name', '', ['class' => 'form-control']) !!}
它不会填充输入值,因为理论上我已将默认值(第二个参数)设置为''
。
有没有一种方法可以填充值并添加一个类而不显式地这样做:
{!! Form::text('user_name', $user->user_name, ['class' => 'form-control']) !!}
通过上面的操作,它会通过模型{!! Form::model($user, ['action' => 'user@updateUser']) !!}
来破坏渲染表单的对象,因为我可能会将$user
作为变量解析到模板上,我不想这样做
答案 0 :(得分:1)
然后,您可以使用null
代替""
空白
{!! Form::text('user_name', null , ['class' => 'form-control']) !!}
您还可以使用old
功能
{!! Form::text('user_name', $user->user_name or old('user_name'), ['class' => 'form-control']) !!}
此$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']) !!}