php-orm原则如何获取对象及其相关联接



我在php项目中使用条令ORM
我想知道条令是如何从数据库中获取对象(其表)的?

  • 它是否获取该对象的所有相关联接以及所有相关对象
    假设$author$文章有关联。$author = $authorRepository->find($id)是否获取文章表?

  • 它是否获取该对象的联接的联接?

我在转储ORM对象时遇到了这个问题。我看到了它所有的协会名称。例如:$author:的条令转储

object(stdClass)#1212 (4) {
  ["__CLASS__"]=>
    string(6) "author"
  ["ID"]=>
    int(12)
  ["num"]=>
    int(6059996)
  ["CreateTimestamp"]=>
    int(1316602238)
  ["articles"]=>
    array(3) {
      [0]=>
        string(7) "article"
      [1]=>
        string(7) "article"
      [2]=>
        string(7) "article"
    }
}

我想知道条令是如何从数据库中获取对象(其表)的?

基本上使用数据映射器模式

它是否获取该对象的所有相关联接,从而获取所有相关联接对象?它是否获取该对象的联接?

不,不是除非您使用DQL、查询生成器或本机SQL指定它。

如果您在其存储库中获得一个对象,请说:$author = $authorRepository->find($id);它将只从一个表中提取(类表继承除外)

如果随后要求$author对象检索其关系,例如:$author->getBooks();,而之前没有指定它(与DQL/SQL连接),则它将使用延迟加载,通过虚拟代理模式实现,并执行另一个分离的查询来检索数据

相关内容

  • 没有找到相关文章

最新更新