CakePHP:以最大值连接表

时间:2013-01-06 13:35:51

标签: cakephp join cakephp-2.2

对不起我在cakePHP中的新功能。我用cakePHP 2.2。我有两个表,书籍和交易。

表格:图书

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));

at view:

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

但它显示错误:

  

注意(8):未定义的索引:事务[APP \ View \ Catalogs \ user_katalog.ctp,第32行]

2 个答案:

答案 0 :(得分:0)

您正在查找(全部),因此您有一个书籍列表

var_dump($Book);

你会看到

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

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

如果您需要,请循环浏览$Book或使用find('first', ...)

答案 1 :(得分:0)

dogmatic69 是对的。这是一个例子: 因为你在控制器中使用过它:

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

你应该在视图中使用它:

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