Zend Framework Multiple Table Query - PullRequest
       4

Zend Framework Multiple Table Query

1 голос
/ 29 апреля 2010

Я хочу выполнить это утверждение через Zend Framework. Насколько я понимаю, я могу использовать Zend_Db_Select. Можно ли использовать Zend_Db_Table?

Три таблицы: классы, студенты и class_students

выберите classes.name, Students.student_id, Students.fname, Students.lname из студентов, классов, class_students где class_students.student_id = Students.student_id AND class_students.class_id = classes.class_id;

1 Ответ

2 голосов
/ 29 апреля 2010

да, возможно - Zend_Db_Table предоставляет вам интерфейс для выполнения различных операций над таблицей. Например, учитывая выбор нескольких таблиц, который вы хотите выполнить, и предположив, что у вас правильно настроен адаптер db, мы можем получить что-то вроде следующего:

$table = new Model_DbTable_Classes(); // which extends Zend_Db_Table_Abstract
$select = $table->select()->setIntegrityCheck(false);
$select->join('class_students', 'class_students.class_id = classes.class_id')
       ->join('students', 'student.student_id = class_students.student_id')
       ->where('classes.class_id = ?', 1)
       ->where('student.student_id = ?', 10);

$result = $table->fetchAll($select);

print_r($result->toArray());

В этом конкретном случае я бы не использовал Zend_Db_Table, хотя я склонен использовать Zend_Db_Table, когда мне нужно просто выполнить действия над одной таблицей. Что касается выбора нескольких таблиц, я бы предпочел перейти с помощью db select или структурировать мой запрос по старому стилю (строка SQL) и извлечь его, используя мой объект db.

Надеюсь, это поможет:)

М.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...