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
업데이트 방법을 수정하여 이메일을 수정 (수정 된 경우)하고 새 이메일을 추가 (입력 한 경우)하는 방법에 대해 알지 못합니다. 누구든지 올바른 방향으로 나를 가리킬 수 있다면 감사하겠습니다. - 감사합니다!
당신은 '사용할 수있는 푸시() ... 시작하는 당신의 방법에 당신을 얻을해야'A 모델과 관계 [링크] (http://laravel.com/docs/를 저장하기위한 방법 설득력있는 # insert-update-delete) –
고마워, 이것이 올바른 방향 일지 모르겠다. 그러나 이것에 대해 좀 더 도움이 필요하다. 이메일 테이블의 해당 행을 업데이트하고 아직 존재하지 않는 경우 행을 추가하려면 어떻게해야합니까? – PollenBrands