Я бы добавил метод в Model_Bugs
примерно так:
public function fetchBugsByAuthorname() {
$bugTable = $this;
$bugTableName = $this->info('name');
$authorsTable = new Model_Authors();
$authorsTableName = $authorsTable->info('name');
$select = $bugTable->select()
->setIntegrityCheck(false)
->from($bugTable, array('id', 'bugname', 'authorid'))
->join($authorsTableName,
"$bugTableName.authorid = $authorsTableName.id",
array("authorname"))
->order("$authorsTableName.authorname asc");
$result = $bugTable->fetchAll($select);
return $result;
}
Но для этого вам нужно отключить проверку целостности таблицы ZF (setIntegrityCheck(false)
выше), что означает, что вы не сможете напрямую вызывать save()
в результирующих строках. Но если он предназначен только для чтения, он будет работать.
Если вам необходимо сохранить наборы строк обратно в базу данных, вам, возможно, придется сначала выбрать идентификаторы авторов из Model_Authors
в том порядке, в котором вы хотите, а затем изменить порядок запроса Model_Bugs
соответственно. Это грязнее, но может работать.