分类: PHP
2016-03-14 12:25:10
你经常要将一个对象或者对象的数组转换成一个数组,常见的情形是,为了通过REST API提供数据数组(或其他使用方式), 将AR模型(活动记录模型)转换成数组。如下代码可完成这个工作:
$posts = Post::find()->limit(10)->all();
$data = ArrayHelper::toArray($posts, [ 'app\models\Post' => [ 'id', 'title', // the key name in array result => property name 'createTime' => 'created_at', // the key name in array result => anonymous function 'length' => function ($post) { return strlen($post->content);
},
],
]);
第一个参数包含我们想要转换的数据,在本例中,我们要转换一个叫 Post 的 AR 模型。
第二个参数是每个类的转换映射表,我们在此设置了一个Post 模型的映射。 每个映射数组包含一组的映射,每个映射可以是:
这上面的转换结果将会是:
[ 'id' => 123, 'title' => 'test', 'createTime' => '2013-01-01 12:00AM', 'length' => 301,
]