什么是学说水合? [英] What is Doctrine hydration?

查看:130
本文介绍了什么是学说水合?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



有人可以解释一下吗?

解决方案

Hydration是一种用于返回查询结果的方法。例如:


  1. HYDRATE_ARRAY - 这将返回一个由另一个数组表示的记录:

      $ q = Doctrine_Query :: create()
    - > from( 'post p')
    - > setHydrationMode(Doctrine :: HYDRATE_ARRAY);

    $ resultSet = $ q-> execute(); // $ resultSet是一个数组

    foreach($ resultSet as $ post){
    // $ post是一个数组
    echo $ post ['title'];
    }


  2. HYDRATE_RECORD - 这将返回一个对象的集合( Doctrine_Collection ):

      $ q = Doctrine_Query :: create()
    - > from('Post p')
    - > ; setHydrationMode(学说:: HYDRATE_RECORD); //不必要,HYDATE_RECORD是默认方法

    $ resultSet = $ q-> execute(); // $ resultSet是一个Doctrine_Collection对象

    foreach($ resultSet as $ post){
    // $ post是一个Post对象
    echo $ post-> getTitle() ;
    echo $ post ['title']; //每个Doctrine的Model对象实现ArrayAccess接口,所以这是可能的
    echo $ post-> myCustomMethod();
    }


  3. HYDRATE_SINGULAR_SCALAR - 将返回第一列查询结果的值:

      $ q = Doctrine_Query :: create()
    - > select('p.created_at')
    - > from('Post p')
    - >其中('p.id =?',321)
    - > ; setHydrationMode(学说:: HYDRATE_SINGULAR_SCALAR);

    $ createdAt = $ q-> execute(); // $ createdAt具有来自结果集的第一个记录的第一列的值(例如:2008-04-06 21:22:35)


有更多的方法,您可以阅读文档中的每一个。


I've read about hydration in doctrine's documentation but I still can't understand what it is.

Could someone please explain?

解决方案

Hydration is a method used to return query results. For example:

  1. HYDRATE_ARRAY - This will return you an array of records that are represented by another array:

    $q = Doctrine_Query::create()
       ->from('Post p')
       ->setHydrationMode(Doctrine::HYDRATE_ARRAY);
    
    $resultSet = $q->execute(); // $resultSet is an array
    
    foreach ($resultSet as $post) {
        // $post is an array
        echo $post['title'];
    }
    

  2. HYDRATE_RECORD - This will return you an collection (Doctrine_Collection) of objects:

    $q = Doctrine_Query::create()
       ->from('Post p')
       ->setHydrationMode(Doctrine::HYDRATE_RECORD); // Unnecessary, HYDATE_RECORD is default method
    
    $resultSet = $q->execute(); // $resultSet is an Doctrine_Collection object
    
    foreach ($resultSet as $post) {
        // $post is an Post object
        echo $post->getTitle();
        echo $post['title']; // Each Doctrine's Model object implements ArrayAccess interface so this is possible
        echo $post->myCustomMethod();
    }
    

  3. HYDRATE_SINGULAR_SCALAR - Will return the value of first column of query's result:

     $q = Doctrine_Query::create()
       ->select('p.created_at')
       ->from('Post p')
       ->where('p.id = ?', 321)
       ->setHydrationMode(Doctrine::HYDRATE_SINGULAR_SCALAR); 
    
    $createdAt = $q->execute(); // $createdAt has value of first column from first record from result set (eg.: 2008-04-06 21:22:35)
    

There is a few more methods , you can read about each in documentation.

这篇关于什么是学说水合?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆