php – 如何获取doctrine实体属性的类型
发布时间:2020-12-13 21:58:14 所属栏目:PHP教程 来源:网络整理
导读:实际上我有一个学说实体,我需要动态填充其属性. 我希望能够做到这样的事情: $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 valuef
实际上我有一个学说实体,我需要动态填充其属性.
我希望能够做到这样的事情: $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 } 我该怎么做呢? 解决方法
发现
the solution thanks to @Yoshi.我希望它会有所帮助
use DoctrineCommonAnnotationsAnnotationReader; $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 } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |