如何在用于两个 edit/create 的 Laravel Blade 模板中显示 'selected' 下拉列表的值?
How to display 'selected' value of dropdown in Laravel Blade template used for both edit/create?
我在 Laravel 4 视图中使用 Blade 模板来显示用于创建和编辑的表单,一切正常,直到我必须呈现 select
输入类型 - 当编辑,但是在创建新记录时我收到一条错误消息 Undefined variable: data
,这是由倒数第二行中的 'selected' 值触发的(传递给 Form::select()
的最后一个参数)
@if( isset( $data) )
{{ Form::model( $data ) }}
@else
{{ Form::open() }}
@endif
{{ Form::label( 'foo', 'label text' ) }}
{{ Form::select( 'foo' , array('0' => 'No', '1' => 'Yes'), $data->foo ); }}
{{ Form::close() }}
在 Laravel 中是否有一种标准方法可以在未定义 $data
时使用我目前使用的模型绑定来避免这种情况?或者我是否需要简单地使用一个变量来提前检查 $data
是否未定义?
Form Model Binding 的全部目的是您不必自己在输入字段上设置值。您可以将值参数留空,Laravel 将根据 select、输入等的 name
填充值
{{ Form::select( 'foo' , array('0' => 'No', '1' => 'Yes')); }}
您甚至可以取消您的 isset($data)
检查,因为 Laravel 也会这样做:
{{ Form::model( $data ) }}
{{ Form::label( 'foo', 'label text' ) }}
{{ Form::select( 'foo' , array('0' => 'No', '1' => 'Yes')); }}
{{ Form::close() }}
我在 Laravel 4 视图中使用 Blade 模板来显示用于创建和编辑的表单,一切正常,直到我必须呈现 select
输入类型 - 当编辑,但是在创建新记录时我收到一条错误消息 Undefined variable: data
,这是由倒数第二行中的 'selected' 值触发的(传递给 Form::select()
的最后一个参数)
@if( isset( $data) )
{{ Form::model( $data ) }}
@else
{{ Form::open() }}
@endif
{{ Form::label( 'foo', 'label text' ) }}
{{ Form::select( 'foo' , array('0' => 'No', '1' => 'Yes'), $data->foo ); }}
{{ Form::close() }}
在 Laravel 中是否有一种标准方法可以在未定义 $data
时使用我目前使用的模型绑定来避免这种情况?或者我是否需要简单地使用一个变量来提前检查 $data
是否未定义?
Form Model Binding 的全部目的是您不必自己在输入字段上设置值。您可以将值参数留空,Laravel 将根据 select、输入等的 name
填充值
{{ Form::select( 'foo' , array('0' => 'No', '1' => 'Yes')); }}
您甚至可以取消您的 isset($data)
检查,因为 Laravel 也会这样做:
{{ Form::model( $data ) }}
{{ Form::label( 'foo', 'label text' ) }}
{{ Form::select( 'foo' , array('0' => 'No', '1' => 'Yes')); }}
{{ Form::close() }}