2013-01-06 1 views
0

미안 해요 cakePHP에 새롭게 추가되었습니다. 나는 cakePHP 2.2를 사용한다. 책과 거래라는 두 개의 테이블이 있습니다.CakePHP : 최대 값을 가진 테이블에 가입

표 : 책

id 
title 
author 

테이블 : 트랜잭션 테이블 트랜잭션 목록에서

id 
book_id 
status 
borrow_date 

책의 모든 거래.

제 질문은 최대 트랜잭션 ID의 상태를 얻는 방법입니다.

나는이

 
options['joins'] = array(
      array(
       'table' => 'transactions', 
       'alias' => 'Transaction', 
       'type' => 'RIGHT OUTER', 
       'fields' => array('MAX(Transaction.id)', '*'), 
       'conditions' => array(
        'Catalogue.id = Transaction.catalogue_id', 
        //'Transaction.user_id' => $userId 
       ), 
       'order' => array('Transaction.id' => 'desc'), 
      ) 
     ); 
     $this->set('Book', $this->Book->find('all',$options)); 

보기에서 사용하려고 :

$Book['Transaction']['status']; 

그러나 오류 보여줍니다

Notice (8): Undefined index: Transaction [APP\View\Catalogues\user_katalog.ctp, line 32]

답변

0

당신은 발견을하고있는 (모든) 그래서 당신은 목록을 가지고 of books

var_dump($Book); 

당신이 볼 수

array(
    0 => array(
     'Transaction' => ... 
    ), 
    1 => array(
     'Transaction' => ... 
    ) 
    ..... 
); 

하지 $Book 통해

array(
    'Transaction' => ... 
); 

어느 루프 또는 당신이 하나를 원하는 경우 find('first', ...)를 사용합니다.

+0

는 u는 나에게 몇 가지 예제를 줄 수 있습니까? 정의되지 않은 인덱스 : 트랜잭션 [APP \보기 \ 카탈로그 \의 user_katalog.ctp, 라인 32] 내가 사용 –

+0

 foreach ($Book as $b): echo $b['Transaction']['status']; endforeach; 
가 다음 오류를 내가 이것을 사용
 Notice (8): Undefined index: Transaction [APP\View\Book\list.ctp, line 32] 

0

dogmatic69이 맞습니다. 다음은 그 예이다 : 당신 이후 컨트롤러에서 이것을 사용했습니다 :

$this->set('Book', $this->Book->find('all',$options)); 

당신이보기에이를 사용해야합니다

foreach($Book as $b) { 
     echo $b['Transaction']['status']; 
} 
+0

      
을 보여, 다음 오류 공지 사항 (8)을 보여 위의 성명서를 작성한대로 –

+0

내가 이것을 사용 –

+0

여전히 조언이 필요한지 잘 모르겠지만 여기에 잘못했는지 알고 싶습니다. 여전히 조언이 필요한지는 모르겠지만 여기 잘못 입력 한 내용은 다음과 같습니다. " "를 사용하면 $ B를 $ B로 추출하지만""이어야합니다. $ b는 $ B 여야합니다. – Muntasir