Zend Join Models - PullRequest
       11

Zend Join Models

0 голосов
/ 20 июля 2010

У меня есть модели моих таблиц, и я хотел бы сделать соединение, используя модель, а не таблицу.Например, вместо:

$select = $this->select()
 ->from(array('p' => 'products'),
   array('product_id', 'product_name'))
 ->join(array('l' => 'line_items'),
   'p.product_id = l.product_id',
 ->limit(20, 10);

, где я указываю имена таблиц и столбцов, к которым хочу присоединиться, я не могу использовать свои модели?

$select = $this->select()
 ->from(array('p' => 'products'),
   array('product_id', 'product_name'))
 ->join(array('l' => Model_Table1::tableName()),
   'p.product_id = l.product_id',
 ->limit(20, 10);

Ответы [ 3 ]

2 голосов
/ 20 июля 2010

нет ... вы не можете объединить две модели ... это класс, который может быть включен ... так что вы можете использовать только этот класс в контроллере или можете включить в другую модель тоже ... в зависимости от приложения или требования

1 голос
/ 20 июля 2010

Я не понимаю, почему нет, если ваша модель имеет статическую переменную с именем и статическую функцию для возврата переменной:

protected static $table = 'dbname';
public static function tableName() {
    return self::$table;
}

Стоит ли оно того? Имя таблицы когда-нибудь изменится?

0 голосов
/ 23 июля 2010

Вы должны установить проверку целостности ложно. Как это

$select = $this->select()
 ->setIntegrityCheck(false)
 ->from(array('p' => 'products'),
   array('product_id', 'product_name'))
 ->join(array('l' => 'line_items'),
   'p.product_id = l.product_id',
 ->limit(20, 10);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...