我有2個模型,聯繫人和電子郵件。任何接觸可能有多個電子郵件地址,所以我創建了一個模型一個一對多的關係:使用laravel,我如何創建一個更新一對多關係的視圖?
class Contact extends Eloquent {
protected $guarded = array();
public static $rules = array(
'first_name' => 'required',
'last_name' => 'required'
);
public function emails() {
return $this->hasMany('Email');
}
}
class Email extends Eloquent {
public function emails() {
return $this->belongsTo('Contact');
}
}
希望我在正確的軌道上那麼遠,
我以前用過傑夫路的腳手架爲接觸模型,所以我有在控制器此更新方法:
public function update($id)
{
$input = array_except(Input::all(), '_method');
$validation = Validator::make($input, Contact::$rules);
if ($validation->passes())
{
$contact = $this->contact->find($id);
$contact->update($input);
return Redirect::route('contacts.show', $id);
}
return Redirect::route('contacts.edit', $id)
->withInput()
->withErrors($validation)
->with('message', 'There were validation errors.');
}
而且,我已經修改了編輯視圖顯示所有與聯繫人相關聯的電子郵件,並然後再添加一個空白輸入以添加新的輸入:
@foreach($emails as $key => $email)
<li>
{{ Form::label('email', 'Email '.$key.':') }}
{{ Form::text('email'.$email->id, $email->email) }}
</li>
@if(count($emails)==$key+1)
<li>
{{ Form::label('email', 'Email '.($key+1).':') }}
{{ Form::text('email'.($email->id+1)) }}
</li>
@endif
@endforeach
現在,我不知道如何去修改更新方法來更新電子郵件(如果修改)並添加一個新的(如果輸入)。如果有人能指出我正確的方向,我將不勝感激 - 謝謝!
你可以用'推()'用於保存模型和關係[鏈接](http://laravel.com/docs/方法雄辯#插入更新 - 刪除) –
謝謝,這可能是在正確的方向,我不知道 - 但我絕對需要一些更多的幫助。如何更新電子郵件表中的相應行並添加一個(如果它不存在)? – PollenBrands