首页 文章

CakePHP:以最大值连接表

提问于
浏览
0

对不起我是cakePHP的新手 . 我用cakePHP 2.2 . 我有两个表,书籍和交易 .

Table : Books

id
title
author

Table : Transactions

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'];

但它显示错误:

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

2 回答

  • 0

    你正在寻找(全部)所以你有一本书的清单

    var_dump($Book);
    

    你会看见

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

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

    如果需要,可以循环通过 $Book 或使用 find('first', ...) .

  • 0

    dogmatic69 是对的 . 这里's an example: since you' ve在控制器中使用了这个:

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

    你应该在视图中使用它:

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

相关问题