2013-03-10 3 views
3

CI에서 어떻게 모델을 서로 관련 시키나요? 지금 4 가지 모델이 있습니다. 사용자, 사용자 구역, 사용자 토탈 구역, 사용자 상태 및 모든 4 가지 모델을 선택해야합니다. 데이터. 사용자 테이블에 저장된 user_status 그래서 내가 얻을 수있는 UserStatus 테이블에 연결하기 만하면 status_id입니다코드 점화 모델 관계 모델 관계

function view($user_id){ 
       $data['user'] = $this->User_model->get_by_id($user_id)->row(); 
} 

:

나는 모든 사용자에게 사용자 테이블에서 데이터를 선택하는 내 컨트롤러에이 코드를 users_status_id와 같은 이름 나는 사용자가 속한 그룹의 목록을 알아야합니다. 그래서 Users.userid를 기반으로 UsersToDepartment 테이블에서 가져와야합니다. 그런 다음 UsersDepartment 테이블에서 해당 그룹 이름을 가져옵니다. 더 자세한 설명은 내 다이어그램을 참조하십시오. enter image description here

네이티브 PHP에서 알고 있습니다.이 작업은 join을 사용하여 수행 할 수 있습니다. CI에서 어떻게 이루어 집니까?

내가 YII으로 알고

, 당신은이 너무 CI 가능합니다 이런 식으로

$posts=Post::model()->with(
'author.profile', 
'author.posts', 
'categories')->findAll(); 

할 수 있습니까? 유 table_one을 가지고 자신의 ID

$this->db->select('columns'); 
$this->db->from('table_one'); 
$this->db->join('table_two', 'table_two.id = table_one.id'); 

//then do the query 

를 사용하여 table_two에 가입 할

답변

5

예를 들어 당신은 더 완전한 튜토리얼은 아래 링크를 읽을 수 있습니다

http://ellislab.com/codeigniter/user-guide/database/active_record.html

+0

안녕 Mohur는, 그래, 난 이전 읽었습니다. 하지만 $ this-> User_model-> get_by_id ($ user_id) -> row()를 호출 할 때 거기에서 관계를 추가 할 수 있습니까? YII 프레임 워크와 마찬가지로 "with ('usermodel, usertodepartmentmodel, statusmodel')"; – user1149244

-2

에 한번 사용을 결합 테이블이 쿼리를

Select a.*,b.* 
from table_one a 
inner join table_two b where b.id=a.id 
0

$this->db->join();을 참조하십시오. Active Record: CodeIgniter

여기서는 codeigniter가 좋지 않다는 것을 알고 있습니다. 그래서 저는 항상 Yii를 선호합니다.

+0

yii와 같은 모델 관계에 모델을 구현 했습니까? 나는 똑같은 것을 찾고있다. 내가 뭘 시도했는지 확인하는 것은 yii와 같습니다. 그것을 여기에서 갱신 할 것이다 .http : //www.yiiframework.com/forum/index.php/topic/60061-implement-functionality-of-yii-1x-in-codeigniter/ –

+0

나는 또한 Yii와 모델을 시도했다. 관계를 모델링한다. – user1149244

2

코드 이그나이터는 PHP를 위해 ORM 프레임 워크 ... 당신이 ORM 프레임 워크처럼 취급 할 수

(Laravel은 ORM 프레임 워크에 대한 좋은 예이다)이 아니다.

하지만 join on query를 사용하여 시뮬레이션 할 수 있습니다.

이 연구 단지 객체 당신에게 다른 모델 데이터를 얻을 당신에게 그 모델을 얻을 수 없습니다 ...

+0

고마워요. YII로 시도했기 때문에 이것을 묻는 것을 생각했습니다. 사용하는 것이 편리합니다. – user1149244

+0

그러나 거기에 해결책이 있습니다 :) https://github.com/nazieb/elegant-orm –