Zend_Db modeli sınıf içinde başka bir tablodan veri almak nasıl?

2 Cevap php

İki tablo registries ve names vardır. Sonuç olarak, ben iki modeli sınıfları var. I registries modelinde bir yöntem kodlama ve ben names tablo / modelinde tüm adlarını almak gerekir. Nasıl ben bunu?

Basit new Names() bir çalışması gerekir? Ancak, bu tavsiye edilir?

2 Cevap

Evet, possible başka bir tablo sınıfın başka bir tablo sınıf içindeki yöntemlerin bir örneğini oluşturmak için var.

Eğer birden fazla tablo içerir yapmak uygulama çalışmaları varsa Ama, bu uygulama çalışmaları kapsüller bir sınıf tasarımı, ve bunun içinde her iki tablo kullanmak daha iyidir.

Bir model tablo aramak yanlış nedeni budur. Nowhere Zend_Db_Table belgelerinde bir tablo modeli çağrı yapar.

Bir modeli uygulama kısmını temsil eder ve onun işi yapmak için birden fazla tablo içerebilir. Lütfen tabloya karşılık bir sınıf sadece bir tablo olduğunu.

Sofranıza gelen modelleri decouple!


Yorumlarınız Re: - öyle değil hala bir model uzanan Zend_Db_Table_Abstract düşünüyoruz!

Bir model not, bir veri erişim sınıfı, bu uygulama bir birim olması. Bu Zend Framework herhangi bir bölümünü uzanmaz.

Modeli ve tablosu arasındaki ilişkidir HAS-A değil, IS-A.

class MyRegistryModel // extends nothing
{
  /**
   * @var Zend_Db_Table_Abstract
   */
  protected $_registryTable;

  /**
   * @var Zend_Db_Table_Abstract
   */
  protected $_namesTable;

  public function __construct()
  {
    $this->_registryTable = new RegistryTable();
    $this->_namesTable = new NamesTable();
  }

  public function getDailyReport()
  {
    // use the tables as needed to build the report
  }
}

Bu çalışması için size bağımlı bir ilişki ile masa kurulum olması

registryTable->find(1)->current()->getDependentRowset($namesTable)