İç içe modelleri hakkında açıklama ihtiyacı

0 Cevap php

Ben iç içe modeli üzerinde çalışmaya nasıl bir örnek gerekir.

Bazı sipariş yönetimi uygulama ve modelleri var, varsayalım: Sipariş, Konum, Öğe.

Sipariş Pozisyonlar içerebilir ve Pozisyonlar Ürünleri içerebilir.

Soru: veri seçimi idare nasıl?

Gereken bazı kullanım durumları:

  • Get list of Orders with Positions and Items (like in my example code)
  • (Pozisyonlar ve öğeler olmadan) Siparişler sadece listesini alın
  • Bazı istatistikleri alın, örneğin, tek pozisyon tüm Kalemlerin toplam tutarı

Ben böyle bir şey yapabilirsiniz:

class Order_Mapper
{
    public function getOrders($criteria)
    {
        $orders = array(); // Get order list from DB

        foreach($orders as $order)
        {
            $positions = Position_Mapper::getPositionsByOrderId($order->id);

            foreach($positions as $position)
            {
                $order->addPosition($position);
            }
        }

        return $orders;
    }
}

class Position_Mapper
{
    public function getPositionsByOrderId($order_id)
    {
        $positions = array(); // Get position list from DB

        foreach($positions as $position)
        {
            $items = Item_Mapper::getItemsByPositionId($position->id);

            foreach($items as $item)
            {
                $position->addItem($item);
            }
        }

        return $positions;
    }
}

Daha sonra gerekli olan birçok SQL sorguları, seçmek sipariş için bir, Pozisyonlar almak için her Düzeni için bir ve daha sonra Öğeler almak için her pozisyon için bir tane var çünkü ... ama bu yetersiz.

Ben bu yüzden herhangi bir yardıma açığız MVC oldukça deneyimsiz değilim!


Doktrini cevap - Ben gerçekten yeni ORM paketi öğrenmek istemedim, ne de elle SQL sorguları yazma umursamıyorum. Ben sadece yukarıda belirtilen görevleri yerine getirmek için nasıl bir fikir gerekir.

Here yükü olmadan yukarıda belirtilen kullanım durumları tüm yapmak benim ikinci bir deneyin. Bir göz atın ve bana düşüncelerinizi söyleyin lütfen. Kod çok basit.

0 Cevap