如何在Cakephp中获取和显示来自不同模型的数据

时间:2013-11-24 00:18:13

标签: cakephp cakephp-2.3

我有3个表:ordersdiscountsproductsproduct有很多discounts(折扣时间)。 Discount有很多orders。换句话说,它看起来像:Product > Discount > Order.

如何从3表中获取所有数据,将其放入一个订单视图(在Order控制器中执行)并显示出来(在Order视图中)。

这就是我做的,但它没有用:

//Order controller
public function index() {
    $this->Order->recursive=1;
    $this->set('orders', $this->Order->find('all'));
}


// Order view
<?php foreach ($orders as $order): ?>
        <tr>
            <td><?php echo $order ['Order']['order_id']; ?></td>
            <td><?php echo $this->Html->link($order['Product']['product_name'], array('controller' => 'products', 'action' => 'view', $order['Product']['product_id'])); ?></td>     //I showed it here
            <td><?php echo $order['Order']['order_date']; ?></td>
            <td><?php echo $order['Order']['payment']; ?></td>
<?php endforeach; ?>
<?php unset($order); ?>

请帮帮我!提前谢谢。

2 个答案:

答案 0 :(得分:2)

由于您提到您在订单控制器中,您可以执行以下任何操作:

$this->Order->Behaviors->load('Containable');
$orders = $this->Order->find('all', array(
    'contain' => array('Discount' => 'Product')));
$this->set(compact('orders'));

现在,在您的视图中,您可以迭代$ orders变量。

PS:当然,我在这里假设折扣属于产品。

答案 1 :(得分:0)

您可以轻松实现此功能和不同功能

f1 = plt.figure(1)
plt.plot(data_frame.iloc[:,0], data_frame.iloc[:,1:])
plt.title('')
plt.xlabel(data_frame.columns[0])
plt.legend(data_frame.columns[1:])
plt.xlim([0,10])
f1.show()