首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在symfony 3.3中添加外部约束后获得奇怪的数据

在symfony 3.3中添加外部约束后获得奇怪的数据
EN

Stack Overflow用户
提问于 2017-07-28 00:42:06
回答 4查看 139关注 0票数 1

我的应用程序中有两个简单的实体:产品分类,它们与ManyToOne关系相关:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    <?php

    namespace AppBundle\Entity;

    use Doctrine\ORM\Mapping as ORM;

    /**
     * Product
     *
     * @ORM\Table(name="product")
     * @ORM\Entity
     */
    class Product
    {
        /**
         * @var int
         *
         * @ORM\Column(name="id", type="integer")
         * @ORM\Id
         * @ORM\GeneratedValue(strategy="AUTO")
         */
        private $id;

        /**
         * @var string
         *
         * @ORM\Column(name="name", type="string", length=255)
         */
        private $name;

        /**
         * @var string
         *
         * @ORM\Column(name="description", type="text")
         */
        private $description;

        /**
         * @ORM\ManyToOne(targetEntity="Category", inversedBy="products")
         * @ORM\KoinColumn(onDelete="CASCADE")
         */
        private $category;

        /**
         * Get id
         *
         * @return int
         */
        public function getId()
        {
            return $this->id;
        }

        /**
         * Set name
         *
         * @param string $name
         *
         * @return Product
         */
        public function setName($name)
        {
            $this->name = $name;

            return $this;
        }

        /**
         * Get name
         *
         * @return string
         */
        public function getName()
        {
            return $this->name;
        }

        /**
         * Set description
         *
         * @param string $description
         *
         * @return Product
         */
        public function setDescription($description)
        {
            $this->description = $description;

            return $this;
        }

        /**
         * Get description
         *
         * @return string
         */
        public function getDescription()
        {
            return $this->description;
        }

        /**
         * @return int
         */
        public function getCategory()
        {
            return $this->category;
        }

        /**
         * @param int $category
         */
        public function setCategory($category)
        {
            $this->category = $category;
        }
    }

/**
 * Category
 *
 * @ORM\Table(name="category")
 * @ORM\Entity
 */
class Category
{
    /**
     * @var int
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var string
     *
     * @ORM\Column(name="name", type="string", length=255)
     */
    private $name;


    /**
     * Get id
     *
     * @return int
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set name
     *
     * @param string $name
     *
     * @return Category
     */
    public function setName($name)
    {
        $this->name = $name;

        return $this;
    }

    /**
     * Get name
     *
     * @return string
     */
    public function getName()
    {
        return $this->name;
    }
}

该关系正在工作,fine.But --有一个problem.When,我试图通过以下方法从DB获取对象

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public function indexAction(){
        $products = $this->getDoctrine()
            ->getRepository('AppBundle:Product')
            ->findAll();

        echo "<pre>";
        print_r($products);die;
    }

它返回代码的语气,比如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Array
(
    [0] => AppBundle\Entity\Product Object
        (
            [id:AppBundle\Entity\Product:private] => 1
            [name:AppBundle\Entity\Product:private] => Samsung Galaxy S5
            [description:AppBundle\Entity\Product:private] => Stylish and elegant!
            [category:AppBundle\Entity\Product:private] => Proxies\__CG__\AppBundle\Entity\Category Object
                (
                    [__initializer__] => Closure Object
                        (
                            [static] => Array
                                (
                                    [entityPersister] => Doctrine\ORM\Persisters\Entity\BasicEntityPersister Object
                                        (
                                            [class:protected] => Doctrine\ORM\Mapping\ClassMetadata Object
                                                (
                                                    [name] => AppBundle\Entity\Category
                                                    [namespace] => AppBundle\Entity
                                                    [rootEntityName] => AppBundle\Entity\Category
                                                    [customGeneratorDefinition] => 
                                                    [customRepositoryClassName] => 
                                                    [isMappedSuperclass] => 
                                                    [isEmbeddedClass] => 
                                                    [parentClasses] => Array
                                                        (
                                                        )

                                                    [subClasses] => Array
                                                        (
                                                        )

                                                    [embeddedClasses] => Array
                                                        (
                                                        )

                                                    [namedQueries] => Array
                                                        (
                                                        )

                                                    [namedNativeQueries] => Array
                                                        (
                                                        )

                                                    [sqlResultSetMappings] => Array
                                                        (
                                                        )

还有更多,这是不可能在这里完全呈现的。如果有人建议我如何摆脱所有这些不必要的数据,只接收我对象的属性,我将非常感激。提前谢谢。

EN

回答 4

Stack Overflow用户

发布于 2017-07-28 00:52:57

这是因为Doctrine在默认情况下将关联作为代理加载,而代理是对实际实体的引用。然后,当您尝试从该关联中获取某些信息时,Doctrine实际上会从数据库中获取数据并将其注入水。这通常被称为“延迟加载”,对于提高性能非常有用。

要解决这个问题,必须在关联中设置急切的获取模式:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/**
 * @ORM\ManyToOne(targetEntity="Category", inversedBy="products", fetch="EAGER")
 */
private $category;
票数 1
EN

Stack Overflow用户

发布于 2017-07-28 00:55:19

您可以使用查询生成器。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$qb = $repository->createQueryBuilder('p')->getQuery()->getArrayResult();

作为数组获得结果

票数 0
EN

Stack Overflow用户

发布于 2017-07-28 03:40:15

为此使用Symfony序列化程序(或JMS序列化程序)。

例如,您可以简单地将输出配置为实体的各种字段集(使用序列化组),隐藏某些字段并仅显示相关实体的ID。

基本文件如下:

https://symfony.com/doc/current/components/serializer.html

https://symfony.com/doc/current/serializer.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45368802

复制
相关文章
Livy:基于Apache Spark的REST服务
Apache Spark提供的两种基于命令行的处理交互方式虽然足够灵活,但在企业应用中面临诸如部署、安全等问题。为此本文引入Livy这样一个基于Apache Spark的REST服务,它不仅以REST的方式代替了Spark传统的处理交互方式,同时也提供企业应用中不可忽视的多用户,安全,以及容错的支持。 背景 Apache Spark作为当前最为流行的开源大数据计算框架,广泛应用于数据处理和分析应用,它提供了两种方式来处理数据:一是交互式处理,比如用户使用spark-shell或是pyspark脚本启动Sp
CSDN技术头条
2018/02/13
4K0
Livy:基于Apache Spark的REST服务
基于spring-boot的rest微服务框架
周末在家研究spring-boot,参考github上的一些开源项目,整了一个rest微服务框架,取之于民,用之于民,在github上开源了,地址如下:
菩提树下的杨过
2018/09/20
8040
Ajax的异步请求探究
在开发中经常使用ajax去请求接口,而ajax不是一项新的技术,基于原生的XmlHttpRequest对象和html css js共同完成 在了解ajax之前先搞清楚什么是http, 想要了解更多可访问mozllia(霸王龙)的 https://developer.mozilla.org/zh-CN/docs/Web/API/XMLHttpRequest/send# Http
用户9347382
2022/01/10
8650
Rest API请求管理最佳实践:RestClient-cpp库的应用案例
在当今互联网时代,REST(Representational State Transfer)API已经成为了现代应用程序开发的重要组成部分。随着各种网络服务和应用程序的不断涌现,有效地管理和调用REST API变得至关重要。为了解决这一需求,开发人员们倾向于寻找可靠且易于使用的库来简化REST API请求的处理。
小白学大数据
2024/03/29
2910
AsyncContext异步请求的用法
在Servlet 3.0中,在ServletRequest上提供了startAsync()方法
全菜工程师小辉
2019/09/16
5.4K0
AsyncContext异步请求的用法
HarmonyOS 开发实践 —— 基于@ohos/axios的网络请求能力
Axios 是一个基于promise的网络请求库,可以运行node.js和浏览器中。基于Axios原库v1.3.4GitHub版本进行适配,使其可以运行在OpenHarmony并沿用其现有用法和特性。
小帅聊鸿蒙
2024/12/03
2940
HarmonyOS 开发实践 —— 基于@ohos/axios的网络请求能力
HarmonyOS 开发实践 —— 基于rcp的网络请求能力
rcp模块提供HTTP数据请求功能,请求性能如接口的易用性、性能、功耗方面,对比Network Kit HTTP网络API,rcp采用面向对象和场景的设计,API使用更简单、更灵活,满足不同场景的使用需求,具备更好的扩展性和更优的性能。支持如场景化网络API、网络代理、自定义DNS解析、自定义证书校验、服务器身份校验等特性。
小帅聊鸿蒙
2024/11/22
2130
HarmonyOS 开发实践 —— 基于rcp的网络请求能力
Angular 实践:如何优雅地发起和处理请求
Tips: 本文实现重度依赖 ObservableInput,灵感来自同事 @Mengqi Zhang 实现的 asyncData 指令,但之前没有 ObservableInput 的装饰器,处理响应 Input 变更相对麻烦一些,所以这里使用 ObservableInput 重新实现。
灵雀云
2020/02/26
8680
Angular 实践:如何优雅地发起和处理请求
Netflix 微服务异步迁移:从同步的“请求响应”模式转换为异步事件
假设我们正在运行一个基于 Web 的服务。请求处理变慢最终将会导致服务不可用。实际上,并不是所有的请求都需要立即处理。有些请求只要确认已收到即可。你有没有问过自己这样的问题:“我是否能够从异步请求处理中获益?如果确实如此的话,我该如何在一个实时的、大规模的关键任务系统中做出这种转变?”
深度学习与Python
2022/11/28
7870
Netflix 微服务异步迁移:从同步的“请求响应”模式转换为异步事件
Livy,基于Apache Spark的开源REST服务,加入Cloudera Labs
Hadoop生态圈的Spark(https://www.cloudera.com/products/open-source/apache-hadoop/apache-spark.html),一夜之间成为默认的数据处理引擎,并被作为高级分析的标准。但是它依旧有许多东西需要完善,特别是在大规模/多租户,开发与投产,以及可扩展性方面。
Fayson
2018/03/29
2.4K0
基于zookeeper的微服务实践
微服务的话题也火了好几年了,各类微服务架构的文章也是非常的多,这里也阐述下个人对微服务系统的见解。
DifficultWork
2019/06/03
1.2K0
Spring Boot快速开发REST服务实践
REST代表Representational State Transfer. 是一种架构风格,设计风格而不是标准,可用于设计Web服务,可以从各种客户端使用.
用户5224393
2019/08/30
8240
Spring Boot快速开发REST服务实践
基于 Docker 的微服务架构实践
基于 Docker 的容器技术是在2015年的时候开始接触的,两年多的时间,作为一名 Docker 的 DevOps,也见证了 Docker 的技术体系的快速发展。本文主要是结合在公司搭建的微服务架构的实践过程,做一个简单的总结。希望给在创业初期探索如何布局服务架构体系的 DevOps,或者想初步了解企业级架构的同学们一些参考。
烂猪皮
2018/08/03
2.6K0
基于 Docker 的微服务架构实践
Java调用外部REST请求的几种方式
1、RestOperations 提供了各种封装方法,非常方便直接将返回转成实体类。
伍六七AI编程
2022/03/23
8110
python-异步IO编程-异步HTTP请求的实现
在传统的同步IO编程中,当我们发起一个HTTP请求时,我们需要等待服务器返回响应,这样就会阻塞当前线程的执行。如果需要发起多个HTTP请求,就需要创建多个线程或进程来处理这些请求,这样会造成资源浪费和性能下降。为了解决这个问题,Python提供了异步IO编程模型,可以实现异步HTTP请求,从而提高程序的性能和并发能力。
玖叁叁
2023/04/21
7320
Spring 3.0支持基于rest的Web服务学习总结
尽管RESTful功能被添加到Spring MVC框架非常早期通过注释和其他API功能,支持基于rest的Web服务是Spring MVC有点晚。几个jax - rs(RESTful Web服务的Java API)实现,比如Restlet RESTEasy和球衣支持rest风格的Web服务,但Spring社区没有添加到Spring 3.0支持rest风格的Web服务功能。在这篇文章中,我讨论了Spring 3.0支持开发RESTful Web服务,检查类和注释。 快速复习,RESTful Web服务的Web
用户1289394
2018/02/27
1.3K0
小白需懂的异步请求的处理
在我们传统的服务中,当一个HTTP请求过来时,tomcat或者是其他的中间件都会有一个主线程来处理请求,所有的业务逻辑都会在这个线程里面处理完,最后会给出一个响应。由于我们的tomcat所管理的线程数是有限的,当线程到达一定程度后,再有请求过来将会无法去处理了。
用户7386338
2020/05/29
2.1K0
servlet异步请求
其中第二步处理业务逻辑时候很可以碰到比较耗时的任务,此时servlet主线程会阻塞等待完成业务处理,对于并发比较大的请求可能会产生性能瓶颈,则servlet3.0之后再此处做了调整,引入了异步的概念。
全栈程序员站长
2022/09/18
9120
servlet异步请求
Spring 异步请求
With the above in mind, the following is the sequence of events for async request processing with a Callable:
数媒派
2022/12/01
8110
ajax发送异步请求四个步骤,AJAX的异步请求的四个步骤[通俗易懂]
全部的现代浏览器均支持XMLHttpRrquest对象(IE5和IE6使用ActiveObject)async
全栈程序员站长
2022/08/29
1.4K0

相似问题

REST中放置请求的最佳实践

20

执行基于软件的优化的良好实践是什么?

50

Java服务--DTO的最佳实践是什么?

10

REST中添加或删除列表的最佳实践是什么?

10

在Scala上返回未来的异步API的最佳实践是什么?

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文