重用 laravel 表格部分
Reuse laravel form partial
当重用带有 Form::model() 和 Form::open() 的部分表单时,我 运行 遇到了有关如何使用默认值的问题。
例如,当使用以下形式部分 partials/form.blade.php:
{!! Form::text('myfield', 'Default') !!}
{!! Form::text('otherfield', '123') !!}
{!! Form::text('yetanother', 'Yet another default') !!}
// Etc
我会按如下方式包含它,创建。blade.php:
{!! Form::open() !!}
@include('partials/form.blade.php')
{!! Form::close() !!}
并用于编辑编辑。blade.php:
{!! Form::model($mymodel) !!}
@include('partials/form.blade.php')
{!! Form::close() !!}
但是,默认值不能像那时那样与编辑一起使用。blade.php 所有模型值都将被忽略(它将始终是 'Default'、'123' 和 'Yet another default',而不是实际的模型值)。
并且当使用 null 作为默认值时,它将填充编辑的模型值。blade.php,但随后创建。blade.php 字段将为空。
使用编辑中的模型值和新模型的 "default" 值的好方法是什么?
您可以将默认值指定为数组并使用 Form::model()
创建表单:
{!! Form::model(['myfield' => 'Default', 'otherfield' => '123', 'yetanother' => 'Yet another default']) !!}
@include('partials/form.blade.php')
{!! Form::close() !!}
(如果有更多字段我会通过控制器的默认值)
然后在 form.blade.php
中不使用默认值:
{!! Form::text('myfield') !!}
{!! Form::text('otherfield') !!}
{!! Form::text('yetanother') !!}
如果 $mymodel
直接来自控制器,您甚至可以使用相同的视图进行编辑和创建:
{!! Form::model($mymodel) !!}
{!! Form::text('myfield') !!}
{!! Form::text('otherfield') !!}
{!! Form::text('yetanother') !!}
{!! Form::close() !!}
然后将正确的东西注入视图。像这样:
public function edit($id){
$mymodel = MyModel::find($id);
return view('form')->with('mymodel', $mymodel);
}
public function create(){
$defaults = [
'myfield' => 'Default',
'otherfield' => '123',
'yetanother' => 'Yet another default'
];
return view('form')->with('mymodel', $defaults);
}
当重用带有 Form::model() 和 Form::open() 的部分表单时,我 运行 遇到了有关如何使用默认值的问题。
例如,当使用以下形式部分 partials/form.blade.php:
{!! Form::text('myfield', 'Default') !!}
{!! Form::text('otherfield', '123') !!}
{!! Form::text('yetanother', 'Yet another default') !!}
// Etc
我会按如下方式包含它,创建。blade.php:
{!! Form::open() !!}
@include('partials/form.blade.php')
{!! Form::close() !!}
并用于编辑编辑。blade.php:
{!! Form::model($mymodel) !!}
@include('partials/form.blade.php')
{!! Form::close() !!}
但是,默认值不能像那时那样与编辑一起使用。blade.php 所有模型值都将被忽略(它将始终是 'Default'、'123' 和 'Yet another default',而不是实际的模型值)。
并且当使用 null 作为默认值时,它将填充编辑的模型值。blade.php,但随后创建。blade.php 字段将为空。
使用编辑中的模型值和新模型的 "default" 值的好方法是什么?
您可以将默认值指定为数组并使用 Form::model()
创建表单:
{!! Form::model(['myfield' => 'Default', 'otherfield' => '123', 'yetanother' => 'Yet another default']) !!}
@include('partials/form.blade.php')
{!! Form::close() !!}
(如果有更多字段我会通过控制器的默认值)
然后在 form.blade.php
中不使用默认值:
{!! Form::text('myfield') !!}
{!! Form::text('otherfield') !!}
{!! Form::text('yetanother') !!}
如果 $mymodel
直接来自控制器,您甚至可以使用相同的视图进行编辑和创建:
{!! Form::model($mymodel) !!}
{!! Form::text('myfield') !!}
{!! Form::text('otherfield') !!}
{!! Form::text('yetanother') !!}
{!! Form::close() !!}
然后将正确的东西注入视图。像这样:
public function edit($id){
$mymodel = MyModel::find($id);
return view('form')->with('mymodel', $mymodel);
}
public function create(){
$defaults = [
'myfield' => 'Default',
'otherfield' => '123',
'yetanother' => 'Yet another default'
];
return view('form')->with('mymodel', $defaults);
}