0

私は初心者なので、これは簡単な質問です。私は mvc デザイン パターンでドクトリンを使用する方法を学んでいますが、エンティティをクエリするコードをどこに置くべきかについて常に混乱しているようです。エンティティ ユーザーをクエリする方法がありますが、どこに行けばよいですか? エンティティ、コントローラー、またはリポジトリに配置する必要がありますか?

私のコード:

ENTITY ユーザー

<?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);
}
4

1 に答える 1

0

最善の方法は、RepositoryClass を使用してそこにカスタム メソッドを追加することです。リポジトリ クラスを使用する場合、find メソッドを再定義する必要がないという利点があります。

http://mackstar.com/blog/2010/10/04/using-repositories-doctrine-2

于 2012-08-15T14:23:55.033 に答える