对不起我在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行]
答案 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'];
}