Laravel 用输入组填充表单
Laravel populate form with input groups
我正在寻找将数据绑定到带有输入组的表单中的方法。
例如我有这些输入:
Form::text('purchaser[address]');
Form::text('seller[address]');
我想绑定来自我的变量的数据 - $purchaser 有一个字段 'address' 和 $seller 也有字段 'address'。我知道可以使用 laravel
填写表格
Form::model
但我找不到如何将其用于输入组的示例。有没有这种可能,还是必须手动操作?
根据文档,我认为您非常接近:
Form::model($purchaser);
然后,如果您想要一个包含地址值的 <input type="text">
,您可以调用:
Form::text("address");
并且 Laravel 应该为您提供模型中的值。
请注意,这假设您已经定义了 $purchaser
的模型。如果没有,先做。
通常,我只是手动处理 <input>
个元素,因为我觉得我有更多的控制权。在这种情况下:
<input type="text" name="address" value="{{ $purchaser->address }}" class="..."/>
而且我可以随时编辑和修改它,尤其是 class
和 value
属性。
希望对您有所帮助!
编辑: 我想我弄错了。您只想填充 address
字段值,而不是 address
关系,而是一组模型,对吧?
因此,您可以轻松地做到这一点:
$purchaser = Purchaser::with('address')->find($someId);
$groups = new Illuminate\Support\Collection;
$groups->put('purchaser', $purchaser);
$groups->put('another_model', $anotherModel);
// then
Form::model($groups->toArray())
Form::text('purchaser[address]')
Form::text('another_model[some_field]')
首先你需要load
address
,然后你需要以数组的方式调用它:
// eager load
$purchaser = Purchaser::with('address')->find($someId);
// or lazy load
$purchaser->load('address');
// then:
Form::model($purchaser, ...)
Form::text('address[street]')
Form::text('address[city]')
// and so on
我正在寻找将数据绑定到带有输入组的表单中的方法。 例如我有这些输入:
Form::text('purchaser[address]');
Form::text('seller[address]');
我想绑定来自我的变量的数据 - $purchaser 有一个字段 'address' 和 $seller 也有字段 'address'。我知道可以使用 laravel
填写表格Form::model
但我找不到如何将其用于输入组的示例。有没有这种可能,还是必须手动操作?
根据文档,我认为您非常接近:
Form::model($purchaser);
然后,如果您想要一个包含地址值的 <input type="text">
,您可以调用:
Form::text("address");
并且 Laravel 应该为您提供模型中的值。
请注意,这假设您已经定义了 $purchaser
的模型。如果没有,先做。
通常,我只是手动处理 <input>
个元素,因为我觉得我有更多的控制权。在这种情况下:
<input type="text" name="address" value="{{ $purchaser->address }}" class="..."/>
而且我可以随时编辑和修改它,尤其是 class
和 value
属性。
希望对您有所帮助!
编辑: 我想我弄错了。您只想填充 address
字段值,而不是 address
关系,而是一组模型,对吧?
因此,您可以轻松地做到这一点:
$purchaser = Purchaser::with('address')->find($someId);
$groups = new Illuminate\Support\Collection;
$groups->put('purchaser', $purchaser);
$groups->put('another_model', $anotherModel);
// then
Form::model($groups->toArray())
Form::text('purchaser[address]')
Form::text('another_model[some_field]')
首先你需要load
address
,然后你需要以数组的方式调用它:
// eager load
$purchaser = Purchaser::with('address')->find($someId);
// or lazy load
$purchaser->load('address');
// then:
Form::model($purchaser, ...)
Form::text('address[street]')
Form::text('address[city]')
// and so on