2012-12-19 5 views
0

관계가 정의 된 (1 : * 및 : : through) Kohana 모델을 설정했지만 WHERE 문에서 사용하는 가장 좋은 방법을 알고 싶었습니다.Kohana 3.3 : 관계가있는 WHERE 문

예 : User 모델과 Post 모델이 있습니다. Post 내가 user_created

은 내가 실제 필드 userID을 사용할 수 있습니다 알고 별명을 가진 User 모델에 $_has_many 관계 설정을 가지고 User

에 외래 키 (userID)를 가지고,하지만 난 할 수 있도록하려면 이

$user->where('user_created', 'IS', NULL); 

이 같은도 확인을 위해 편리 할 것입니다 여부를 대다이

같은 뭔가
'm2m_relation_count', '>', 0 

이것이 가능합니까? 감사!

답변

0

다음과 같은 방법으로 Kohana의 ORM으로이 작업을 수행 할 수 있습니다.

$user->user_created->find_all(); 

이렇게하면 사용자가 만든 모든 게시물이 생성됩니다.

이 경우 당신은 사용자가 게시물을 작성한 경우 그냥 같은 기능을 사용하여 확인하고 그 결과에 count()을하고 확인하고 싶은 경우 0보다 큰

난 당신이를 사용할 수 있다고 생각하지 않습니다

별칭은 where 절 자체입니다. ORM 개체에서 호출해야합니다.

다 대다 관계는 동일한 방식으로 작동합니다.

0

1) 게시물이없는 모든 사용자를 빠르게 얻을 수있는 방법은 없습니다. Id는 특별 열 post_count을 추가하고 게시 후이를 증가시키는 것을 선호합니다.

2) m 사용자 확인할 수

if ($user->has('roles')) { 
    // user has at least one role 
} 

if ($user->has('roles', $roleId) { 
    // user has role with id=$roleId 
} 

if ($user->has('roles', array($roleId1, $roleId2))) { 
    // user has both $roleId and $roleId2 roles 
} 

if ($user->has_any('roles', array($roleId1, $roleId2))) { 
    // user has on of the $roleId1 or $roleId2 
} 
: has()/m has_any() 방법과 관계