Tro*_*oso 4 php eloquent laravel-4
我有一个与地址模型有多态关系的帐户模型.这被设置为一对一的关联设置如下:
帐户:
public function address()
{
return $this->morphOne('Address', 'hasAddress', 'add_hasaddress_type', 'add_hasaddress_id', 'act_id');
}
Run Code Online (Sandbox Code Playgroud)
地址:
public function hasAddress()
{
return $this->morphTo('hasAddress', 'add_hasaddress_type', 'add_hasaddress_id');
}
Run Code Online (Sandbox Code Playgroud)
在我的表单上编辑帐户,我也有地址字段.我可以通过以下方式简单地绑定我的帐户对象:
{{ Form::model($account, array('route' => array('accounts/edit', $account->act_id), 'method' => 'put')) }}
{{ Form::label('act_name', 'Account Name:') }}
{{ Form::text('act_name', Input::old('act_name')) }}
Run Code Online (Sandbox Code Playgroud)
并且填写正确的字段.但是,如何填充地址字段?根据我的研究,我需要做:
{{ Form::text('address.add_city', Input::old('address.add_city')) }}
Run Code Online (Sandbox Code Playgroud)
要访问关系的值,但这不起作用.
我也试过了
{{ Form::text('address[add_city]', Input::old('address[add_city]')) }}
Run Code Online (Sandbox Code Playgroud)
正如具有类似标题的SO所暗示的那样.这两个我尝试过和没有旧的输入.这不适用于简单的关系,还是我做错了什么?
另外,如何在控制器中处理这些表单?
关于关系的任何内容都不在形式模型绑定文档中,并且进行搜索主要是让人们要求一对多绑定.
它适用于任何*-to-one关系(对于多对多,即一组模型,它将无法工作):
// prepare model with related data - eager loading
$account = Account::with('address')->find($someId);
// or lazy loading
$account = Account::find($someId);
$account->load('address');
// view template
{{ Form::model($account, ...) }}
Account: {{ Form::text('acc_name') }}
City: {{ Form::text('address[add_city]') }}
{{ Form::close() }}
Run Code Online (Sandbox Code Playgroud)
不需要Input::old或任何东西,null足以作为默认值.Laravel将按此顺序填写数据(这里的文档错误!):
1. old input
2. bound data
3. value passed to the helper
Run Code Online (Sandbox Code Playgroud)
请注意,您必须加载关系(在这种情况下,动态调用将不起作用).
另一件事是稍后处理输入 - Laravel不会自动保湿相关模型,所以你需要这样的东西:
$accountData = Input::only(['acc_name', ... other account fields]);
// or
$accountData = Input::except(['address']);
// validate etc, then:
$account->fill($accountData);
$addressData = Input::get('address');
// validate ofc, then:
$account->address->fill($addressData);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1831 次 |
| 最近记录: |