Реализуйте метод, подобный fetchAllWithCompany
в вашем Model_UserGateway
. В этом методе вы выполняете запрос к базе данных, который выбирает информацию из обеих таблиц. Э.Г.
SELECT *
FROM user
LEFT JOIN company ON user.id = company.user_id
и тогда вы получите всю необходимую информацию:
$users = $userGateway->fetachAllWithCompany();
Я бы так и сделал. Как вы сказали, создавать запрос для каждого пользователя, чтобы получить его компания не хорошо.
Edit:
Предполагая, что у вашего User
объекта есть метод getCompany
, вы можете сделать:
foreach($users as $user) {
$company = $user->getCompany()
}
Конечно, getCompany
должен возвращать Company
объект.
Вы хотите реализовать это для изучения? Потому что многие фреймворки поддерживают такую абстракцию базы данных, например, Zend Framework .