2016-09-24 4 views
-1

새 연락처에 여러 개의 전자 메일 주소가 추가 될 수 있음을 검증하려는 시나리오가 있습니다. 그러나 각 연락처에는 특정 전자 메일 주소 유형.모델에 Laravel 5의 관계 유형이 하나만 존재 함을 확인하십시오.

e.e. 나는 여러 이메일 주소연락처을 만들려면,하지만 그들은 '작업'의 이메일 주소를 입력이있는 이메일 주소이 있어야합니다. 그들은 이메일 주소가 없거나 여러 개이지만 항상 하나의 직장 이메일 주소 만 가질 수 있습니다.

내 모델은 다음과 같습니다. 전자 메일 주소는 연락처가 아닌 다른 개체와 관련 될 수 있으므로 morphMany를 참조하십시오.

Contact.php

public function emailaddresses() 
{ 
    return $this->morphMany('EmailAddress', 'emailaddressable'); 
} 

EmailAddress.php

public function emailaddressable() 
{ 
    return $this->morphTo(); 
} 

public function emailaddresstype() 
{ 
    return $this->belongsTo('EmailAddressType', 'email_address_type_id', 'id'); 
} 

EmailAddressType.php 내가 Laravel 5.1을 사용하고

public function emailaddresses() 
{ 
    return $this->hasMany('EmailAddress', 'email_address_type_id', 'id'); 
} 

. 이것으로 어디에서 시작해야하는지에 대한 모든 포인터가 훌륭합니다.

감사

답변

0

예를 들어, 이메일 주소 function storeEmail()를 저장하는 객체 모델 내에서 함수를 만듭니다.

입력란에 이메일 주소 유형을 확인하십시오. 작업중인 모델에 이미 해당 유형의 관련 전자 메일이 포함되어 있으면 기본값입니다. 그렇지 않으면 주어진 유형의 주소를 저장하십시오.

function storeEmail($type, $address){ 
    //Check if the type exists within the retrieved object 

    //If it already exists or if the object is missing a work email, default 

    //Otherwise add the data to the database for the given object 
} 

모델을 처음 생성 할 때 첫 번째 입력에 필요한 작업 이메일을 추가 할 수 있습니다.