2014-01-24 2 views
0

저는 CI에서 첫 프로젝트를 시작했고 다시 매듭에 빠졌습니다!CodeIgniter의 관련 모델

나는 "회사"

하는 회사는 다음과 같은 구성의 모델, 컨트롤러, 뷰 및 데이터베이스 테이블을 만들었습니다

Company ID 
Company Name 
Company Registration Number 
Credit Limit 
Website 
Address 
Postcode 
Country 

내 컨트롤러는 기업의 목록을 볼 수 있습니다를, 회사를 편집하거나 새 회사를 만들 수 있습니다.

이제 각 회사가 "연락처"목록을 갖기를 바랍니다. 회사마다 하나 이상의 연락처가 있습니다. 내 연락처 테이블은 다음과 같이이다 : 나는 혼란 다음과 같이 많은 질문이 들어 왔 곳

Contact ID 
Company ID (this is the foreign key) 
First Name 
Last Name 
Position 
Email Address 
Telephone 
Mobile 

이것은 : 나는 "연락처"에 대한 완전히 분리 모델, 컨트롤러와 뷰를 함)

1 ? 그들이 서로 관련되어 있기 때문에 그들이 분리되어야하는지, 아니면 "회사"컨트롤러와 모델의 일부인지 여부가 명확하지 않습니다.

2) 내 성향은 연락처가 별도의 모델이어야한다는 것입니다. 이 경우 회사를 삭제할 때 해당 회사의 모든 관련 연락처를 삭제하고 싶을 수도 있습니다.

$this->company_model->delete_company($company_id) /* Delete from both company & contacts */ 

을 또는이 같은 두 모델을 호출해야합니다 : 당신은에서 전체 삭제 프로세스의주의를 기울여야한다

$this->company_model->delete_company($company_id); 
$this->contacts_model->delete_contacts_list($company_id); 

3) 어떤 것 /해야 내 라우팅 모습처럼. 연락처보기, 추가 및 삭제는 회사보기를 통해서만 이루어집니다. 따라서 회사 ID 123이 다음과 같이 표시되는 경우 :

/company/view/123 

회사 123과 관련된 연락처는 어떻게 볼 수 있습니까?

/company/view/123/contacts 

또는이 같은 :이처럼

/contacts/123 

나는이 질문을보고 충분히 명확하고 감사 바랍니다.

답변

0

당신은

yourcontrollermethodname($company_id = NULL) { 
    $this->company_model->delete_company($company_id); 
    $this->company_model->delete_contacts_list($company_id); 
} 

및 모델에

2 방법의 delete_company 및 delete_contacts_list을 모델 모두 전화를 그냥 다음 컨트롤러에서이 yourcontrollermethodname/123

같이 작성한 컨트롤러 함수 이름을 호출하고 바로 ID를 전달 삭제하고 컨트롤러에서보기를 호출하려는 경우

yourcontrollermethodcallscompanylist() 
{ 
    // make model 
    $data['company_list'] = $this->company_model->company_list(); 
    $this->load->view('abc',$data); 
} 
+0

"연락처"는 "compa"와 별개의 모델이 아니어야합니다 ny "인데, 왜냐하면 그들은 관련이 있어도 연락처가 회사가 아니기 때문입니다. 온라인 상점이 있고 제품, 판매, 고객 등에 대한 별도 모델 대신 "상점"이라는 하나의 모델 만있는 것과 같습니다. – MrCarrot

+0

상점 모델 인 경우 하나의 모델 만 만들고 회사와 연락 방법을 모두 입력하고 메서드를 호출 할 때 $ this-> shop_model-> delete_company ($ company_id)와 같이 작성해야합니다. $ this-> shop_model-> delete_contacts_list ($ company_id); –

+0

그러나 회사가 연락처뿐만 아니라 판매 주문 및 송장을 가지고있을 때는 어떻습니까? 확실히 모든 것이 하나의 모델로 들어가면 안됩니까? 각 데이터베이스 테이블의 모델이 더 나은 설정이 아닌가? – MrCarrot