使用 JMS 序列化器仅将实体关系序列化到 Id

2024-01-23

我正在尝试使用 JMS Serializer 序列化实体关系。

这是实体:

class Ad
{ 

    /**
     * @Type("string")
     * @Groups({"manage"})
     * 
     * @var string
     */
    private $description;

    /**
     * @Type("Acme\SearchBundle\Entity\Country")
     * @Groups({"manage"})
     * 
     * @var \Acme\SearchBundle\Entity\Country
     */
    private $country;

    /**
     * @Type("string")
     * @Groups({"manage"})
     * 
     * @var string
     */
    private $title;

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

        return $this;
    }

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

    /**
     * Set country
     *
     * @param \Acme\SearchBundle\Entity\Country $country
     * @return Ad
     */
    public function setCountry($country)
    {
        $this->country= $country;

        return $this;
    }

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

    /**
     * Set title
     *
     * @param string $title
     * @return Ad
     */
    public function setTituloanuncio($title)
    {
        $this->title = $title;

        return $this;
    }

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

}

以及关系的实体:

class Country
{

    /**
     * @Type("string")
     * @Groups("manage")
     * 
     * @var string
     */
    private $id;

    /**
     * @Type("string")
     * @Groups("admin")
     * 
     * @var string
     */
    private $description;

    /**
     * Set description
     * @Groups("")
     *
     * @param string $description
     * @return Country
     */
    public function setDescripcionpais($description)
    {
        $this->description = $description;

        return $this;
    }

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

    }

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

我序列化实体,但我不知道如何将国家/地区属性转换为简单的字段。

我得到了 json 格式的结果:

{"description":"foo", "title":"bar", "country":{"id":"en"} }

但我想像这样获取国家/地区的 id 字段:

{"description":"foo", "title":"bar", "country": "en" }

可以使用 JMS 序列化程序吗?

谢谢。

[EDIT]

@VirtualProperty 不起作用。


是的,你可以使用@VirtualProperty注解:

/**
 * @VirtualProperty
 * @SerializedName("foo")
 */
public function bar()
{
    return $this->country->getCode();
}

但在反序列化时要注意:

@VirtualProperty 这个注解可以定义在一个方法上 表明该方法返回的数据应该看起来像 对象的属性。

> 注意:这仅适用于序列化,并且被完全忽略 反序列化期间。

希望这可以帮助...

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 JMS 序列化器仅将实体关系序列化到 Id 的相关文章

  • 点击 %40 变为 %2540

    当单击包含 符号的链接时 该网址给我 40 这就是我想要的 但是一旦我点击它 一秒钟后它就在我点击后变成了 2540 单击是在电子邮件内 然后定向到网站 其中 40 更改为 2540 我怎样才能让它停止变化 它现在得到这样的参数 email
  • 更改 Woocommerce 中“我的帐户”页面上的标题

    我见过大量有关如何使用 WooCommerce 我的帐户仪表板重新排序 更改导航和页面的示例 但我一生都无法弄清楚如何更改每个部分的主要标题 我的帐户 订单 下载 地址等 我已经搜索过模板 但没有任何乐趣 我尝试使用条件 php 注释来回显
  • Ajax 没有将我重定向到下一页

    我正在尝试将单击的图像的 ID 传递到下一页 当我开发代码时 它没有将我重定向到下一页 当我单击 F12 并检查网络中的 POST 时 它显示变量已正确传递到下一页 如附图所示 但它没有将我重定向到下一页 所以现在我知道变量在下一页中正确传
  • 如何让Apache服务index.php而不是index.html?

    如果我将以下行放入index html文件 使 Apache 包含index php file 参观index html页面向我显示了这个 这是为什么 为什么它实际上不包含 PHP 文件 正如其他人指出的那样 您很可能没有 html设置为处
  • 使用 ImageMagick 和 PHP 将 PNG 转换为 JPG 并将透明背景设置为白色

    将图像从 PNG 转换为 JPEG 时 如何使用 ImageMagick 带有 php 扩展 将透明背景设置为白色 在撰写本文时 您尚未指定正在使用哪个扩展 但如果您使用命令行 则命令将是 convert image png backgro
  • laravel - 使用请求类或输入类

    在宁静的控制器中 我应该使用哪个类来获取传递的变量 member gt email Input get email or member gt email Request get email 两种选择都适合我 但有什么区别 Input get
  • 媒体的 Google Cloud Storage 签名网址

    我已经建立了一个视频网站 为用户提供 m3u8 和关联的 ts 文件 我不希望媒体文件免费可用 所以我所做的是 当用户在网站上时 在 mysql 中使用他们的 IP 和令牌创建一个会话 当他们请求特定媒体子域 mp4 domain com
  • CodeIgniter 控制器 - JSON - AJAX

    我正在尝试通过 AJAX 使用 CodeIgniter 发送表单构建 并尝试使用 JSON 获取响应 但是 我只在打开开发人员选项卡时看到响应 我什至不确定这是否实际上是响应 因为它显示了两个 json 数据 它所显示的只是加载旋转器 然后
  • 在 PHP 中比较两个对象的最快方法是什么?

    假设我有一个对象 在本例中为 User 对象 并且我希望能够使用单独的类来跟踪更改 用户对象不必以任何方式改变它的行为才能发生这种情况 因此 我的单独的类创建它的 干净 副本 将其存储在本地某个位置 然后可以将 User 对象与原始版本进行
  • 如何防止在 PHP 中使用超出“使用”范围的特征方法

    我想知道是否有任何方法可以防止在 PHP 的任何类上下文之外使用特征方法 让我用一个简短的例子来解释我想要什么 这是我当前的代码 File MyFunctions php trait MyFunctions function hello w
  • 如何在HTML中的PHP中注释掉HTML和PHP?

    这是我想注释掉的一行代码 h1 class post title a href title a h1 一种流行的注释方法是分别注释 html 和 php 有一个更好的方法吗
  • 检查 PHP 中的字符串长度

    我有一个长度为 141 个字符的字符串 使用下面的代码我有一个if如果字符串大于或小于 140 则语句返回一条消息 libxml use internal errors TRUE dom new DOMDocument dom gt loa
  • 如何在多次尝试后延迟登录尝试 (PHP)

    我正在开发一个用 PHP 构建的相当大的网站 该网站可能会有很多用户 我正在寻找一种方法来保护登录屏幕免受自动尝试的影响 我已经在注册表中添加了验证码检查 但还想进一步强化网站 据我所知 StackOverflow 上也有类似的问题 而且我
  • Mysqli 更新抛出 Call to a member function bind_param() 错误[重复]

    这个问题在这里已经有答案了 我有一个 70 80 字段表单 需要插入到表中 因此我首先根据表单中的输入名称在数据库中创建了一个表 而不是手动创建一个巨大的插入语句 这是我使用的代码创建 更改表 function createTable ar
  • 如何通过php获取网页的Open Graph协议?

    PHP 有一个简单的命令来获取网页的元标记 get meta tags 但这仅适用于具有名称属性的元标记 然而 开放图谱协议如今变得越来越流行 从网页获取 opg 值的最简单方法是什么 例如 我看到的基本方法是通过 cURL 获取页面并使用
  • Ebay api GetSellerList,解析响应 XML

    我正在使用 eBay 交易 api 来获取当前列出的卖家股票 我正在使用 GetSellerList 调用 我在解析 xml 时遇到问题 然后将其插入到网站商店中 这是 xml 请求
  • 如何从 Laravel 执行存储过程

    我需要在表单提交数据后执行存储过程 我让存储过程按照我想要的方式工作 并且我的表单正常工作 我只是不知道从 laravel 5 执行 sp 的语句 它应该是这样的 执行 my stored procedure 但我似乎在网上找不到类似的东西
  • phpActiveRecord 日期时间格式不正确

    当尝试使用 phpActiveRecord 在表中创建记录时 出现以下错误 Invalid datetime format 1292 Incorrect datetime value 2013 06 20 11 59 08 PDT for
  • 从字符串中获取数字

    我有一个字符串 例如 lorem 110 ipusm 我想获取 110 我已经尝试过这个 preg match all 0 9 string ret 但这正在返回 Array 0 gt 1 1 gt 1 2 gt 0 我想要这样的东西 Ar
  • 如果产品重量超过1000克,如何以公斤为单位显示

    在 Storefront 主题中 我使用下面的代码将格式化重量从 1000g 更改为 1kg add action woocommerce after shop loop item title show weight 10 function

随机推荐

  • 创建一个接受 POST 和 GET 的 Jax-RS RESTful 服务?

    我正在将现有的一项服务转变为 RESTful 并且我已经掌握了使用 RestEasy 的基本功能 我的一些客户端应用程序应该能够对多个服务执行 GET 和 POST 请求 我只是在寻找是否有任何简单的方法可以绕过 jax rs 来指定 AP
  • 我应该从 getFft 看到什么样的输出?

    好吧 我正在努力创建一个 Android 音频可视化应用程序 问题是 我从 getFft 方法中得到的结果与谷歌所说的它应该产生的结果不一致 我一直追溯到 C 源代码 但我对 C 或 FFT 不够熟悉 无法真正理解正在发生的事情 我将尝试包
  • sifr3 - 预取不起作用?

    我在启用 sifr 3 的网站的加载时间 大小方面遇到问题 并发现在我的应用程序中多次请求字体 swf 这可以在 firebug 的网络选项卡以及 apache 日志中看到 On http novemberborn net flash pr
  • 如何在Castle.DynamicProxy中使用IInterceptor?

    我写了一个这样的例子 简单计算器类 public class Calculator public int Add int a int b return a b 实现了DynamicProxy提供的 IInterceptor Serializ
  • 为什么“reset_index(drop=True)”函数会意外删除列?

    我有一个名为的 Pandas 数据框数据匹配 它包含 worker id unit id 和 caption 列 请参阅随附的屏幕截图 了解此数据框中的某些行 假设索引列不是按升序排列 我希望索引为 0 1 2 3 4 n 并且我希望它按升
  • 在 PubNub Swift 中访问 PNMessageResult

    请参阅此链接 http www pubnub com blog realtime ios apps getting started with swift and pubnub 基于以下功能我能够收到响应 func client client
  • Java MySQL 更新查询

    我收到错误 无法发出数据 这里是SSCCE package mysqltest import java awt import java awt event import javax swing import java applet Appl
  • 使用 Angular 5 分析 asp.net core 2(Web api)

    我正在寻找以下环境的分析解决方案 有人可以建议吗 net471 上的 ASP NET Core 2 实体框架 6 2 0 角度 5 0 0 我调查了迷你分析器 Glimpse Glimpse 尚未升级至 Core 2 0 MiniProfi
  • 实现最快运行时间的算法(问题、解决)

    对于算法竞赛训练 不是家庭作业 我们在过去一年中收到了这个问题 将其发布到此站点是因为其他站点需要登录 这就是问题 http pastehtml com view c5nhqhdcw html http pastehtml com view
  • 如何使用 NodeJS 创建流 API

    您将如何创建一个流 APINode http nodejs org 就像Twitter 流媒体 API http apiwiki twitter com Streaming API Documentation 我最终想做的是从FriendF
  • 如何克隆 Date 对象?

    分配一个Date变量到另一个变量会将引用复制到同一实例 这意味着改变一个就会改变另一个 我怎样才能真正克隆或复制Date实例 Use the Date https developer mozilla org en Core JavaScri
  • flutter android main 函数被调用两次

    在我的 flutter 应用程序中 我注意到 main 函数执行了两次 我正在使用计数器应用程序中的示例代码 文本main function被打印两次 我的 AndroidManifest xml 如下
  • 更改前缀后 npm 没有响应

    我最近尝试通过 npm 更新 IONIC CLI 安装成功了几次 但 CLI 版本没有改变 经过研究 我决定更改 npm 前缀 然后 IONIC strated 抛出 bash IONIC 命令未找到 然后我做了进一步的研究 之后我通过 w
  • “强制停止”将 Activity 留在其生命周期的哪个位置?

    假设我的应用程序已启动并正在运行 然后我进入我的设备主屏幕 导航设置 gt gt 应用程序 gt gt 管理应用程序 选择我的应用程序 然后按Force stop Which Activity下次打开应用程序时会调用方法吗 在我因不检查自己
  • 无法保持对 Selenium Python 驱动程序中元素的关注

    我试图通过 python 控制网络来运行脚本并下载相应的 csv 文件 以下是网页的外观 其中包含仪表板菜单 可单击 搜索 其他按钮 单击 搜索 按钮后 它会显示一个 搜索 文本框 可以在其中输入代码并按 Enter 键运行 现在我需要找到
  • Java JNA UCHAR 和 PUCHAR

    我正在寻找一个Java字符串 WLANHostedNetworkSetSecondaryKey and WLAN 托管网络设置属性 一个想要一个带有 CHAR 的结构内的结构 第一个想要一个 PUCHAR 我尝试使用字符串 char byt
  • 在 Linux 中设置 ADT 时出现错误消息

    我安装了 Ubuntu 11 10 安装了 GNOME 3 取代了 Unity 从 Ubuntu 软件中心安装了 Eclipse 安装了 android sdk 和 ADT 现在 当我启动 eclipse 时 我收到一条消息 Failed
  • 如何从 ISecurityTokenValidator 正确获取依赖范围的服务

    在我的 asp net core 2 0 Web 应用程序中 我有一个自定义ISecurityTokenValidator它验证令牌 它依赖于存储库来进行数据库查找 存储库本身被设置为范围依赖项 services AddScoped
  • 如何设置Arcgis Javascript dojoConfig包的相对路径

    我正在使用 Arcgis Javascript API API 构建于 dojo 工具包之上 所以我需要在API中使用dojo功能 我正在准备 dojo 配置文件 如下所示 var pathRegex new RegExp var loca
  • 使用 JMS 序列化器仅将实体关系序列化到 Id

    我正在尝试使用 JMS Serializer 序列化实体关系 这是实体 class Ad Type string Groups manage var string private description Type Acme SearchBu