2013-08-21 4 views
1

Yii와 PHP 11 월을 사용하여 Pactpub 웹 응용 프로그램 개발을 읽었습니다. 이러한 문제에 직면하여 관계 사용의 논리를 이해할 수 없습니다). 데이터베이스에 다음 다이어그램 테이블 :Yii의 관계()는 책의 예를 이해하지 못합니다.

당신은 모델에 코드를 삽입해야합니다

문제 모델 :

... 
'requester' => array(self::BELONGS_TO, 'User', 'requester_id'), 
'owner' => array(self::BELONGS_TO, 'User', 'owner_id'), 
'project' => array(self::BELONGS_TO, 'Project', 'project_id'), 
); 
... 

프로젝트 모델 :

... 
'issues' => array(self::HAS_MANY, 'Issue', 'project_id'), 
'users' => array(self::MANY_MANY, 'User', 'tbl_project_user_assignment(project_id, user_id)'), 
... 

내가 할 수있는 우리가 덧붙인다는 것을 이해하지 못합니까? 모델 이슈가 모든 것을 이해한다면, 프로젝트 - 나는 우리가 추가하고 있다는 것을 이해하지 못한다. 모델 문제는 모든 것을 이해한다면 ... 이해

+0

도 거래하고 싶지는 않을 몇 가지 큰 SQL SELECT 쿼리를 생성합니다. gif – SkyStar

+1

책을 잊어 버리면 문서 [** Yii Doc **] (http://www.yiiframework.com/doc/guide/1.1/en/database.arr)를 읽으십시오. 정말 잘 설명되어 있습니다. – itachi

답변

0

도움말, 다음 모델 프로젝트 - 나는 우리가 어떤 경우에

를 추가하고 있는지 이해하지 못하는 , 당신은 이미, 프로젝트 있었다 그 프로젝트의 모든 이슈와 파트너 사용자를 찾고 싶습니다.

$project = Project::model()->findByPK(1); // get project id=1 

$issues = $project->issues; // get all of issues of project id=1, the result would be array 
$users = $project->issues; // get all of users of project id=1, the result would be array 

$project = Project::model()->with('issues', 'users')->findAll(); // get all of projects which has issue and user 

//you have a user name ABC, and you want to find all of projects which contains a issue from owner has that user name. 

$projects = Project::model()->with(array(
      'issues' => array(
       'alias' => 'issue', 
       //'condition' => '', 
       //'params' => array(), 
       'with' => array(
        'owner'=>array(
         'alias' => 'user', 
         'condition' => 'username =:username', 
         'params' => array(':username'=>'ABC'), 
        ) 

       ) 
      ), 

     ))->findAll(); 

여러 가지 관계 및 조건으로 여러 가지 방법을 조합 할 수 있습니다. http://i.stack.imgur.com/jAhCq : 위의 예 중 하나는 내가 내 자신 :)에와 데이터베이스 테이블의

AR Relations Details

관련 문제