Doctrine2命名查询

Mik*_*ail 14 symfony doctrine-orm

我在Doctrine2中找不到任何有关命名查询的文档.请帮忙.Doctrine2是否具有命名查询功能?

Mik*_*ail 23

您可以使用

  1. NamedQuery - DQL.例

    use Doctrine\ORM\Mapping\NamedQuery;
    use Doctrine\ORM\Mapping\NamedQueries;
    
    /**
    * @Entity
    * @Table(name="cms_users")
    * @NamedQueries({
    *     @NamedQuery(name="activated", query="SELECT u FROM __CLASS__ u WHERE u.status = 1")
    * })
    */
    class CmsUser
    {}
    
    Run Code Online (Sandbox Code Playgroud)

    并称之为

    $this->getDoctrine()->getRepository('MyBundle:CmsUser')
        ->createNamedQuery('activated')
        ->getResult();
    
    Run Code Online (Sandbox Code Playgroud)
  2. NamedNativeQuery - SQL.更多信息请访问:http://docs.doctrine-project.org/en/latest/reference/native-sql.html#named-native-query

  3. 在EntityRepository中收集查询,例如:

    namespace Acme\StoreBundle\Repository;
    
    use Doctrine\ORM\EntityRepository;
    
    class ProductRepository extends EntityRepository
    {
        public function findAllOrderedByName()
        {
            return $this->getEntityManager()
                ->createQuery('SELECT p FROM AcmeStoreBundle:Product p ORDER BY p.name ASC')
                ->getResult();
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)

    更多信息请访问:http://symfony.com/doc/current/book/doctrine.html#custom-repository-classes

类似主题:https://groups.google.com/forum/? fromgroups#!topic/docsine-user / K-D5ta5tZ3Y [1-25]