0
這是一個簡單的問題,因爲我是一個noob。我正在學習如何在mvc設計模式中使用原則,而且我總是對我應該在哪裏放置查詢實體的代碼感到困惑。我有一個方法來查詢實體用戶,它應該去哪裏?它應該放在我的實體,控制器還是存儲庫中?doctrine2 mvc實體/控制器設計
我的代碼:
實體用戶
<?php
namespace Entities;
use Doctrine\Common\Collections\ArrayCollection;
/** @Entity(repositoryClass="Entities\UserRepository")
* @Table(name="users")
*/
class Users {
/** @id @column */
protected $id;
/** @column */
protected $first;
/** @column */
protected $mi;
/** @column */
protected $last;
/** @column */
protected $userName;
/** @column */
protected $avatar;
/** @OneToMany(targetEntity="Blog", mappedBy="user") */
protected $blogs;
// Constructor
public function __construct() {
$this->blogs = new ArrayCollection();
}
public function __get($property) {
return $this->$property;
}
public function __set($property, $value) {
$this->$property = $value;
}
}
方法讓用戶:它應該到哪裏呢?
public function getUsers(){
$query = $this->_em->createQuery('SELECT u FROM Entities\Users u');
return $query->getResult(\Doctrine\ORM\Query::HYDRATE_ARRAY);
}
主義實體應該是模型層的一部分,不能直接從控制器進行交互。也許[this](http://stackoverflow.com/a/5864000/727208)會有一些亮點,特別是在Doctrine實現數據映射模式(或者相當接近它的東西)之後。基本上,檢索用戶的方法應該在服務中使用,但如果您正在編寫純SQL查詢,則使用ORM看不出任何意義。 – 2012-08-15 14:31:40