0

写真のようにモデルを記述しています ( http://hosting5578581.az.pl/img/association.png )。写真のように (ORDER モデルで) データをフェッチする方法を理解できます。OrderItems アイテムからフェッチできます。いくつかの注文に関連していますが、mysqlクエリでNAME(Itemsテーブルにあります)として表示する方法がわかりません(たとえば、order_id = 1):

select items.name from order_items, items WHERE order_items.item_id = items.item_id AND order_items.order_id = 1;

4

3 に答える 3

0

@Dave: 私の OrdersController にはコードがあります:

$products = $this->Order->find('first', array(

            'contain' => array (
                'Customer',
                'OrderItem' => array(
                    'Item'
                )
            )
                 ));

find() クエリの後、次の結果が得られます (配列 'Order' と 'Customer' を省略します - 今は重要ではありません):

array(

'OrderItem' => array(
        (int) 0 => array(
            'order_id' => '1',
            'item_id' => '4',
            'quantity' => '2',
            'Item' => array()
        ),
        (int) 1 => array(
            'order_id' => '1',
            'item_id' => '6',
            'quantity' => '1',
            'Item' => array()
        ),
        (int) 2 => array(
            'order_id' => '1',
            'item_id' => '7',
            'quantity' => '1',
            'Item' => array()
        ),
        (int) 3 => array(
            'order_id' => '1',
            'item_id' => '8',
            'quantity' => '1',
            'Item' => array()
        )
    )
)

1.では、どうすればすべての「製品」を入手できますか? 私はこれに似たものから始めましたが、動的変数である ['0']...['1]... を書かなければならないので、それが悪いことを知っています

<?php echo h($products['OrderItem']['0']['item_id']); ?>

2.ご覧の通り

'アイテム' => 配列()

nullです;-)だから、例えばItemテーブル/モデルからItemの名前を取得することはできません

于 2013-08-29T12:06:06.737 に答える