实际上我有一个学说实体,我需要动态填充其属性.

我希望能够做到这样的事情:

$entity = new Entity();

$reflect = new ReflectionClass($entity);

// $fields is an array whihch contain the entity name as the array key and the value as the array value

foreach ($fields as $key => $val)

{

if (!reflect->hasProperty($key)) {

var_dump('the entity does not have a such property');

continue;

}

if ( the type of $key is string ) {

// convert $value to utf8

} elseif ( the type of $key is integer) {

// do something else

} //....etc

}

我该怎么做呢?

解决方法:

use Doctrine\Common\Annotations\AnnotationReader;

$docReader = new AnnotationReader();

$entity = new Entity();

$reflect = new ReflectionClass($entity);

// $fields is an array whihch contain the entity name as the array key and the value as the array value

foreach ($fields as $key => $val)

{

if (!reflect->hasProperty($key)) {

var_dump('the entity does not have a such property');

continue;

}

$docInfos = $docReader->getPropertyAnnotations($reflect->getProperty($key));

if ( $docInfos[0]->type === 'string' ) {

// convert $value to utf8

} elseif ( $docInfos[0]->type === 'integer' ) {

// do something else

} //....etc

}

标签:php,symfony,doctrine-orm

来源: https://codeday.me/bug/20190716/1476739.html

PHP中如何判断属性类型,php – 如何获取doctrine实体属性的类型相关推荐

  1. Python OOP:继承、单继承、多继承、__mro__、子类重写父类同名属性和方法、子类调用父类同名属性和方法、多层继承、super()、私有(实例)属性和方法、获取修改私有属性值、私有类属性

    一.继承 Python⾯向对象的继承指的是多个类之间的所属关系,即⼦类默认继承⽗类的所有属性和⽅法. 继承作用:继承可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展. 在P ...

  2. java 获取参数的类型_java反射获取方法名称,参数类型

    package com.mysec.reflex; import java.lang.reflect.Constructor; import java.lang.reflect.Field; impo ...

  3. java获取object属性值_java反射获取一个object属性值代码解析

    有些时候你明明知道这个object里面是什么,但是因为种种原因,你不能将它转化成一个对象,只是想单纯地提取出这个object里的一些东西,这个时候就需要用反射了. 假如你这个类是这样的: privat ...

  4. C#中HtmlAgilityPack判断是否包含或不包含指定的属性或值

    //选择不包含class属性的节点 var result = node.SelectNodes(".//span[not(@class)]"); //选择不包含class和id属性 ...

  5. python查看类的属性和方法_Python 获取对象的属性和方法—dir 函数

    工作中,我们使用一些之前没用到过的模块,使用时需要了解一下这个模块中的一些类的方法或属性,怎么做呢?目前我比较常用的两款IDE"Pycharm"和"VSCode" ...

  6. SDK中配置工业相机参数时,如何在MVS中获取需要的属性值?

    SDK中配置工业相机参数时,如何获取需要的属性值? – MVS 采用SDK配置工业相机参数的时候,需要知道参数的类型,最大/小值以及步进值等,否则可能会出现各种错误,现针对常见参数的查看方法进行说明( ...

  7. 基于特性(Attribute)的实体属性验证方案设计

      各位朋友,我是Payne,大家好,欢迎大家关注我的博客,我的博客地址是https://qinyuanpei.github.io.在这篇文章中,我想和大家探讨下数据校验的相关问题,为什么我会对这个问 ...

  8. java 获取子类实际的类型名_Java 泛型类 以及 泛型类获取子类的具体参数类型 以及 获取子类型具体参数的实例...

    前言: 要点都在代码注释中 1.泛型类 GenericInterface package com.demo.generic; import java.lang.reflect.Parameterize ...

  9. JS元素属性操作方法,包括获取属性,修改属性,删除属性

    JS元素属性操作方法,包括获取属性,修改属性,删除属性 本篇记录JS元素属性的操作的方法.其中包含获取属性两个方法,修改属性两个方法,删除属性一个方法 获取属性 element.属性 该方法通常获取自 ...

最新文章

  1. Rancher使用--后端流水线
  2. 向大家推荐一个.Net游戏引擎:Artificial Engines
  3. 点击展开 表格_CAD怎么将excel表格的数据导入并且实时更新?
  4. volunteer research
  5. 牛客网【每日一题】3月25日 tokitsukaze and Soldier
  6. 抓住人工智能红利,百度AI达人养成营带你速成深度学习
  7. Linux学习总结(13)——在阿里云的ubuntu上部署个人服务
  8. 使用python制作ArcGIS插件(4)界面交互
  9. 电子计算机 电子工程 职称,电子信息工程师职称评定
  10. java 遍历 文件_Java的后台文件夹下文件的遍历完整代码
  11. 佛系前端面试题记录--第四周
  12. HMACSHA1 加密算法
  13. 2021-02-26构造函数
  14. 【从零学习OpenCV 4】Windows系统中安装OpenCV 4
  15. 【NLP】文献翻译1——基于结构和词嵌入的文本相似性测量方法
  16. 自考计算机英语难度,自考本科商务英语专业真的难吗
  17. debian和archlinux下使用fcitx5-rime中州韵输入法之双拼及美化
  18. Java之 public class 和 class 的区别
  19. pandas去除两列中同一行有相同元素的数据——数据分析必备技能(5)
  20. Android Service组件实现后台音乐播放

热门文章

  1. jvm学习笔记(1)——java虚拟机内存区域
  2. 算法高级(47)-AI现在都可以写代码了-辅助编程
  3. ppt中的流程图怎么整体移动_PPT中图片太丑了?该怎么办?
  4. C语言编程序编数独,求用C语言编一个解九宫格数独的程序怎么办? 爱问知识人...
  5. 你真的会玩SQL吗?你所不知道的 数据聚合
  6. preg_match_all中的标记
  7. JAVA 算法练习(一)
  8. 统一的Ajax提交封装,一劳永逸好工具(带跨域处理)
  9. 【mongodb系统学习之三】进入mongodb shell
  10. 山东理工【2871】爱