У меня есть таблица Relationship
, которая связывает учителей со студентами
Teacher Student
1 1
1 2
2 1
2 3
В таблице Students
содержатся конкретные данные об учениках
Id Date of birth First Name
1 1990-10-10 Bill Smith
2 1989-01-03 Adam Smithson
Я хочу выбрать всех учеников, которые являются учениками учителя 1. Сейчас я делаю это (это синтаксис ORM propel).
$relationships = RelationshipQuery::create()->filterByTeacher($teacherid)->find();
foreach($relationships as $relationship){
$studentId = $relationship->getStudent();
//use the studentId to get the actual student object
$student = StudentQuery::create()->findPk($studentId);
//after I get the student, I add it to an array
$students[] = $student;
}
Проблема в том, что я получаю массив, а не обычную коллекцию propelCollection, с которой мы сталкиваемся, когда делаем нормальный ->find()
. Есть ли способ немного очистить этот запрос (использовать соединения или что-то в этом роде), чтобы я с самого начала получал коллекцию PropelCollection?