[英]CakePHP retrieve data from another Model
I am new to cakephp and I have a little problem about retrieving data from another model.我是 cakephp 的新手,我在从另一个模型检索数据时遇到了一些问题。
My table association is like this:我的表关联是这样的:
Items hasMany Stocks
Stocks belongsTo Items
Items belongsTo UnitMeasurement
UnitMeasurement hasMany Items
My problem is I want to show UnitMeasurement Name to Stocks index html table view.我的问题是我想向股票指数 html 表视图显示 UnitMeasurement Name。
Current Html table view:当前 Html 表视图:
----------------------------------------------------------------------
Item | Stock Balance| Unit | Created |
----------------------------------------------------------------------
Microprocessor | 12 | DISPLAY UNIT NAME HERE!| 19/1/2014 |
Microcontroller| 20 | DISPLAY UNIT NAME HERE!| 19/1/2014 |
CPU | 12 | DISPLAY UNIT NAME HERE!| 19/1/2014 |
----------------------------------------------------------------------
How do I make the succesful query ?如何进行成功的查询?
Thanks.谢谢。
EDIT:编辑:
This is my find query in my StocksController index function:这是我在 StocksController 索引函数中的查找查询:
public function index() {
$this->Stock->recursive = 0;
$order = "Stock.id DESC";
//set orderby
$stock = $this->Stock->find('all',array('order'=>$order));
$this->set('stocks', $stock);
//query to find UnitMeasurement Name for Stocks Item
foreach ($stock as $stocks) {
//debug($stocks);
$this->loadModel('Items');
$unitMeasurement = $this->Items->find('first',array('fields'=>'unit_measurement_id','conditions'=>array('Items.id'=>$stocks['Stock']['item_id'])));
$this->set('units',$unitMeasurement);
}
}
Thanks again.再次感谢。
check this model name always singular please check and let me know if it works !检查这个模型名称总是单数请检查并让我知道它是否有效!
foreach ($stock as $stocks) {
//debug($stocks);
//$this->loadModel('Items');
$this->loadModel('Item');
$unitMeasurement = $this->Item->find('first',array('fields'=>'unit_measurement_id','conditions'=>array('Item.id'=>$stocks['Stock']['item_id'])));
$this->set('units',$unitMeasurement);
}
You could make a query like this:您可以进行这样的查询:
$items = $this->Item->find('all', array(
'fields' => array(
'Item.name',
'SUM(Stock.amount) as amount',
'UnitMeasurement.name',
'Item.created',
),
'joins' => array(
array(
'table' => "stocks",
'alias' => "Stock",
'conditions' => "Item.id = Stock.item_id"
),
array(
'table' => 'unit_measurements',
'alias' => 'UnitMeasurement',
'conditions' => 'UnitMeasurement.id = Item.unit_measurement_id',
),
),
'group' => array('Item.id', 'Item.unit_measurement_id'),
));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.