2010-08-21 3 views
0

cakePHP에 처음 오르고 내 첫 번째 참여를 시도합니다. 저는 하나의 테이블을 사용자라고하고 하나는 프로젝트라고합니다. 한 사용자는 많은 프로젝트를 가질 수 있으므로 프로젝트에는 user_id 열이 있습니다. 당신이 모든 것을 살펴 보 겠지만CakePHP 테이블에 도움이됩니다.

SELECT `Project`.`id`, `Project`.`title`, `Project`.`created`, `Project`.`website`, `Project`.`language_id`, `Project`.`user_id` FROM `projects` AS `Project` inner JOIN users AS `UsersTable` ON (`UsersTable`.`id` = `Project`.`user_id`) WHERE 1 = 1 

는 사용자 테이블로부터 선택하지 아무것도를 제외하고 잘 보이지만 그것이 : 여기

function index() { 

    $this->set('projects', $this->Project->find('all', array('joins' => array(
     array(
      'table' => 'users', 
      'alias' => 'UsersTable', 
      'type' => 'inner', 
      'foreginKey' => false, 
      'conditions' => array('UsersTable.id = Project.user_id') 
     ) 
    )))); 




} 

는 SQL 덤프입니다 : 여기

는 projects_controller 내 작업입니다 그것에 합류했다.

<table> 
<tr> 
    <th>Name</th> 
    <th>User</th> 
</tr> 



<?php foreach ($projects as $project): ?> 
<tr> 
    <td> 
     <?php echo $html->link($project['Project']['title'], array('controller' => 'projects', 'action' => 'view', $project['Project']['id'])); ?> 
    </td> 
    <td> 
     <?php echo $html->link($project['Project']['username'], array('controller' => 'users', 'action' => 'view', $project['Project']['user_id'])); ?> 
    </td> 
</tr> 
<?php endforeach; ?> 

내가 어딘가에 엉망 :

그리고 여기 내이다? 뷰는 모든 프로젝트를 소유 한 사용자와 함께 나열하려고 시도합니다.

덕분에 많이,

존시

+0

달성하려는 목표는 무엇입니까? 모든 프로젝트에 연관된 사용자가있는 경우이 경우 내부 조인은 왼쪽 조인처럼 작동합니다. 사용자가 모든 프로젝트를 나열하려고한다면'User' 모델에서 find를 수행하고 프로젝트 테이블을 내부적으로 조인해야합니다. –

+0

내 질문이 업데이트되었습니다. 프로젝트 테이블의 모든 프로젝트를 나열하고 사용자를 참여 시켜서 프로젝트 이름과이 프로젝트를 만든 사용자를 나열하여 projects_controller 내에 있습니다. – iamjonesy

+0

SQL 덤프 및 업데이트 된 뷰를 추가했습니다. 내 질문 – iamjonesy

답변

1

는 I가 사업 모델을 편집하여 얻을 수 싶었던 것을 찾았

var $belongsTo = array(
    'User' => array(
     'className' => 'User', 
     'foreignKey' => 'user_id' 
    ) 
); 

이 트릭을했다!

관련 문제