2012-03-15 3 views
1

Я использую Codeigniter и Doctrine вместе для проекта. У меня все налажено с обоими этими инструментами. Но я не уверен, где я должен был этот кусок кода:запрос доктрины в модели или контроллере?

$query = $em->createQuery('SELECT u FROM sessions u'); 
$sessions = $query->getResult(); // array of User objects 

Должен ли я положить это в контроллере или в модели/сущностями? Сначала я подумал, что я должен поместить такую ​​логику в модель сеансов, но для этого требуется менеджер объектов $ em, который, как я думал, должен был находиться в контроллере.

Спасибо, это сбило меня с ума в течение последних полчаса.

ответ

0

Многим людям нравится создавать объекты, называемые DAO или объекты доступа к данным, для хранения этого типа информации.

DAO содержит диспетчер сущности и методы, которые можно вызывать и возвращать нужные вам данные. Например, эта функция будет находиться в DAO:

function findEmployeeById($emp_id) 

И будет содержать запрос, используемый для извлечения сотрудника из базы данных. В вашем контроллере вы просто используете DAO вместо того, чтобы иметь менеджера сущностей и иметь дело с ним на этом уровне.

Но это действительно зависит от предпочтения и от того, насколько велик ваш проект.

+0

Где бы я положил что-то вроде этого (DAO) в codeigniter? в моделях или как часть библиотеки? – user594044

+0

Я не очень хорошо знаком с codeigniter, но я бы, вероятно, поместил его в модель. –

Смежные вопросы