PHP中如何判断属性类型,php – 如何获取doctrine实体属性的类型
实际上我有一个学说实体,我需要动态填充其属性.
我希望能够做到这样的事情:
$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实体属性的类型相关推荐
- Python OOP:继承、单继承、多继承、__mro__、子类重写父类同名属性和方法、子类调用父类同名属性和方法、多层继承、super()、私有(实例)属性和方法、获取修改私有属性值、私有类属性
一.继承 Python⾯向对象的继承指的是多个类之间的所属关系,即⼦类默认继承⽗类的所有属性和⽅法. 继承作用:继承可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展. 在P ...
- java 获取参数的类型_java反射获取方法名称,参数类型
package com.mysec.reflex; import java.lang.reflect.Constructor; import java.lang.reflect.Field; impo ...
- java获取object属性值_java反射获取一个object属性值代码解析
有些时候你明明知道这个object里面是什么,但是因为种种原因,你不能将它转化成一个对象,只是想单纯地提取出这个object里的一些东西,这个时候就需要用反射了. 假如你这个类是这样的: privat ...
- C#中HtmlAgilityPack判断是否包含或不包含指定的属性或值
//选择不包含class属性的节点 var result = node.SelectNodes(".//span[not(@class)]"); //选择不包含class和id属性 ...
- python查看类的属性和方法_Python 获取对象的属性和方法—dir 函数
工作中,我们使用一些之前没用到过的模块,使用时需要了解一下这个模块中的一些类的方法或属性,怎么做呢?目前我比较常用的两款IDE"Pycharm"和"VSCode" ...
- SDK中配置工业相机参数时,如何在MVS中获取需要的属性值?
SDK中配置工业相机参数时,如何获取需要的属性值? – MVS 采用SDK配置工业相机参数的时候,需要知道参数的类型,最大/小值以及步进值等,否则可能会出现各种错误,现针对常见参数的查看方法进行说明( ...
- 基于特性(Attribute)的实体属性验证方案设计
各位朋友,我是Payne,大家好,欢迎大家关注我的博客,我的博客地址是https://qinyuanpei.github.io.在这篇文章中,我想和大家探讨下数据校验的相关问题,为什么我会对这个问 ...
- java 获取子类实际的类型名_Java 泛型类 以及 泛型类获取子类的具体参数类型 以及 获取子类型具体参数的实例...
前言: 要点都在代码注释中 1.泛型类 GenericInterface package com.demo.generic; import java.lang.reflect.Parameterize ...
- JS元素属性操作方法,包括获取属性,修改属性,删除属性
JS元素属性操作方法,包括获取属性,修改属性,删除属性 本篇记录JS元素属性的操作的方法.其中包含获取属性两个方法,修改属性两个方法,删除属性一个方法 获取属性 element.属性 该方法通常获取自 ...
最新文章
- Rancher使用--后端流水线
- 向大家推荐一个.Net游戏引擎:Artificial Engines
- 点击展开 表格_CAD怎么将excel表格的数据导入并且实时更新?
- volunteer research
- 牛客网【每日一题】3月25日 tokitsukaze and Soldier
- 抓住人工智能红利,百度AI达人养成营带你速成深度学习
- Linux学习总结(13)——在阿里云的ubuntu上部署个人服务
- 使用python制作ArcGIS插件(4)界面交互
- 电子计算机 电子工程 职称,电子信息工程师职称评定
- java 遍历 文件_Java的后台文件夹下文件的遍历完整代码
- 佛系前端面试题记录--第四周
- HMACSHA1 加密算法
- 2021-02-26构造函数
- 【从零学习OpenCV 4】Windows系统中安装OpenCV 4
- 【NLP】文献翻译1——基于结构和词嵌入的文本相似性测量方法
- 自考计算机英语难度,自考本科商务英语专业真的难吗
- debian和archlinux下使用fcitx5-rime中州韵输入法之双拼及美化
- Java之 public class 和 class 的区别
- pandas去除两列中同一行有相同元素的数据——数据分析必备技能(5)
- Android Service组件实现后台音乐播放