问题标签 [hydration]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
6427 浏览

symfony - Symfony Doctrine Hydrator - 使用自定义 hydrator 我失去了 ManyToOne 关系

我想扩展 ObjectHydrator 以受益于我的 ManyToOne 关系的水合,并向实体添加额外的字段。

这是我的水合器:StatisticsDataHydrator.php

这是我的配置:config.yml

在我不使用保湿剂的地方我没有问题:

在此处输入图像描述

但是当我使用我的保湿剂时:

在此处输入图像描述

最奇怪的行为是同样发生在这个配置中:config.yml

我已经尝试了各种获取关系但没有成功:

也许我必须在我的实体上使用代理,我真的不知道:(

感谢您的任何帮助!

0 投票
2 回答
62 浏览

mysql - 学说2,从反面检索相关数据

我有 2 个实体。

简单的逻辑是一个用户有很多送货地址,所以他将来可以选择其中一个进行送货。

第一个实体,Direccion(地址)。

第二个实体是 Usuario(用户)

我已经阅读了许多博客和类似的问题,但是当我尝试在关系的反面(OneToMany)上使用 $usuario->获取指令();

我正在非 MVC 架构中使用此代码,到目前为止,一切都像魅力一样通过使用 Doctrine 语句的 DAO 创建和更新,所以我知道在结束点(更新、创建、持久和刷新,使用 find、findBy 等检索数据),一切正常。

当我尝试从使用两个类(Usuario-InverseSide 和 Direccion-OwnerSide)的服务层填充 ArrayCollection 调用时,没有任何反应,Usuario 实例上的 $direcciones arrayCollection 属性没有获取任何内容,即使我尝试建立fetch="EAGER" 在注释上。

对于其余的数据或属性,一切正常,用户的所有其他属性都可以很好地填充。

由于某种原因,没有考虑注释,不知道为什么。我花了几天时间试图弄清楚如何完成这种访问关联数据的方式,不想使用 DQL,但在这一点上,我想我会走这条路。

我尝试了一些硬编码来测试,结果是一样的,$direcciones 没有得到他的数据。显然已经被丢弃,Usuario(用户)的确切 ID 已经设置了他的相关 direcciones(地址)。

该关系仅在 mysql InnoDb 表上的 Direccion 上使用名为 id_usuario 的 FK 定义。

不知道我是否应该在 Usuario 桌子上设置其他东西。或者如果我在项目中存储实体的方式有问题。

请帮助我,任何建议将不胜感激。

学说 2,如何从反面(多对一)获取数据

0 投票
0 回答
167 浏览

android - Phonegapbuild hydration 不工作 Android 8.1

最近水合作用已停止对我的应用程序起作用。几周前我的一切设置都很好,但在本周恢复我的项目后,它就停止了工作。

该应用程序安装良好,检测到更新并下载它。但随后它陷入了错误:

未捕获的类型错误:window.resolveLocalFileSystemURL 不是
child.downloadComplete (hydra.js:219)
at child.trigger (backbone-min.js:163)
at hydra.js:200
at ContentSync.emit (plugins/phonegap-plugin ) 的函数-contentsync/www/index.js:171) 在 Object.callbackFromNative (cordova.js:293)
上成功 (plugins/phonegap-plugin-contentsync/www/index.js:98) 在:1:9

我不太确定是什么问题。我的项目没有任何变化,但我已将设备从 8.0 升级到 8.1。

我试过包括cordova-plugin-file,因为这似乎是缺少的。但是,它没有用。我假设我的项目插件在水合后加载。

0 投票
2 回答
1246 浏览

php - Doctrine - OneToMany 关系,所有结果行不获取对象

我尝试使用他们的子对象(DecisionCab)获取我的所有对象 DemandCab。

我的 2 个实体

在我的 DemandCabRepository

我的 DemandCab 数据

我的 DemandCab 数据

我的 DecisionCab 数据

在此处输入图像描述

当我转储结果时,只出现 2 个决定...... 在此处输入图像描述

...而当我使用时getArrayResult,我有4个决定... 在此处输入图像描述

查询很好,但我不明白为什么水合删除属性decision为 0 或 1 的 DecisionCab 对象(仅显示 null)。

我想了解为什么以及是否有解决方案来获取包含所有 DecisionCab 子对象的 DemandCab 对象。

谢谢

0 投票
1 回答
1087 浏览

reactjs - Hydrating a React/Redux App From a REST API

I have a React/Redux application for my front-end, and a REST API for the backend and I use JWT as a sort of 'session' id (comes out of the box with Laravel Passport, my oAuth server).

Anyways, I was wondering what the best strategy is for hydrating the redux store when the page initially loads when you have a RESTful service that has endpoints for individual resources.

At the moment I'm doing it on component mount. So say a component lists a resource, I call the api/hydrate the store on component mount for that resource. This results in many API calls though, and it can result in unnecessary calls when the component mounts again.

Is there a better alternative to this that you're aware of? My main concern is that I don't want to introduce some weird endpoints to my API specifically for hydrating pages.

0 投票
1 回答
558 浏览

symfony - symfony 3.4中一对多关系的自定义水合器

我有 2 个实体:用户、文章和与属性的多对多关系,用于描述用户与文章的交互。该属性描述了交互的类型(例如,书签...)。

在这种情况下,我需要一个中间实体(UserArticle),它具有从 Article 到 UserArticle 的一对多关系:该属性在 Article 实体中称为 userInteractions。

它是一个 API,当我创建查询生成器时,我会得到当前登录用户喜欢和收藏的文章的这种结果:

}

没关系,但对 javascript 前端不方便:我更愿意公开布尔字段:isLiked:true、书签:true、otheraction:false ...,因为它更容易解析。

我想我必须写一个定制的水合器。我为另一种关系(没有属性的多对多)做了它,它就像一个魅力,但在这种情况下,它只有在有 0 个或一个交互时才有效。如果有 2 个或更多操作,我会在调用父 Doctrine Object hydrator 时收到 500 错误和通知。这是我的保湿剂:

}

我试图查看对象水合器,但它确实是一团糟,不容易理解,我认为在这种情况下,使用自定义水合器可能是不合适的。有什么建议吗?谢谢

0 投票
0 回答
682 浏览

php - 嵌套的嵌入对象错误地水合为空(Doctrine2,php)

摘要:当它们包含在实体中时,Doctrine Embedded 类型无法填充,而这些实体本身又包含在另一个顶级实体中。

详细信息:我有一个顶级实体A,它与一个中间级实体有ManyToOne关系,而中间级实体B又具有一个 Embedded 对象C

当我检索顶级实体(使用$entityManager->getRepository(A::class)->find($aid))时,返回的 A 对象的$b变量将其$c属性显式设置为 null (而不是 - 如您所料 - 完全不存在)。查询$c属性不会导致B水合 - 相反 $c 保持为空。

如果我首先进行虚拟调用以获得Beg的简单属性reference,则可以B正确补水并正确$c填充。

同样,如果我进入中级水平,$entityManager->getRepository(B::class)->find($bid)那么也没有问题。

这是教义的限制吗?

(一个可能的复杂因素是 A 本身是另外两个实体的基类)

0 投票
1 回答
71 浏览

doctrine-orm - Zend Framework 子集合未正确补水

我对子集合的值没有正确补水有疑问。我将 zend 框架 3 与学说 2 一起使用。

由于我必须复制大量代码,因此我将描述我在做什么,如果需要,我将使用代码进行更新。

我们有以下内容:

  • VillaForm 是一个表单元素
  • VillaFieldset 是一个 Fieldset 元素,是 VillaForm 的基本字段集
  • FacilityCategoriesFieldset 是一个 Fieldset,用于 VillaFieldset 中的 Collection 元素

    /li>
  • 设施字段集,它是一个字段集,用于 FacilityCategoriesFieldset 中的集合元素

    /li>

所以从上面看,我们有

VillaForm contains VillaFieldset that contains Collection of FacilityCategoriesFieldset which contains a Collection of FacilitiesFieldset

假设我们在实际的表单页面上有这个例子。

我的问题是,表单提交后,虽然发布的数据是正确的,但水化后的结果会是这样的:

FacilityCategoriesFieldset 的最后一行的FacilityFieldset 行用于FacilityFieldset 的所有行。

这只发生在一个包含另一个集合的集合的字段集时。有没有人暗示我可能做错了什么?如果您需要,我会给您任何其他信息/代码。

非常感谢。

0 投票
0 回答
443 浏览

vue.js - 我们可以阻止 Vue 为特定组件执行客户端水化吗?

我是新手Vue,我们正面临一个问题,即页面的总DOM大小增加了,因为我们在DOMVue 客户端水合的配置中存储了大量数据。出于 SEO 的目的,我们不能跳过服务器端渲染。

我希望是否有任何方法可以阻止水合作用在少数Vue组件上?

所以基本上,我们可以强制 SSR 跳过附加的“data-server-rendered”属性吗?

0 投票
2 回答
2356 浏览

vue.js - 从 Vue 指令访问组件名称

我想创建一个自定义Vue指令,让我可以在我的页面上选择我想要补充的组件。换句话说,这就是我要归档的

  1. Vue我在服务器上呈现我的应用程序 ( ssr)
  2. 我将指令附加到某些组件,如下所示:

    /li>
  3. 我将我的代码发送给客户端,只有那些具有该v-hydrate属性的组件才会在客户端上进行水合(作为root元素)。

我想以这种方式大致实现这一点:

我将创建一个标记并记住组件的指令:

我的想法是在我的inserted方法中为服务器呈现的元素编写一个数据属性,我可以在客户端中读取它,然后用它来水合我的组件。

现在我有两个问题:

  1. 这是一个可行的方法吗
  2. 如何获取组件名称el.setAttributevnode.component.name只是虚拟代码,不存在这种方式。

PS:如果你想知道为什么我只想对我网站的某些部分进行补水:这是广告。他们弄乱了破坏 Vue 的 DOM。