zblog保存的自定义字段数据转换为对象调用
Admin 10105 1
通常我们做主题或插件的时候,或多或少都会使用自定义字段数据;一般都是保存在xxx_Meta字段下的序列化数据;如果是单独的一个数据的话那我们可以直接调用,如果保存的是数组每次输出数据都会以数组格式调用,如:$data=$article->Metas->zbblog; $data['name']; 这样麻烦而且不高效;所以我们可以转为对象格式调用。
我们先看下面的一个案例,看完应该就差不多明白了;
// 首先这是一段zblog发布文章时保存自定义数据的代码,只摘了其中几段最主要的。
// $zbblog= GetVars('zbblog', 'POST');
// 我们这里以下面这个数组为例;
$zbblog = array(
array(
'name' => '小明',
'age' => 20,
'sex' => 1
),
array(
'name' => '小红',
'age' => 18,
'sex' => 0,
)
);
if(is_array($zbblog)){
$zbblog= json_decode(json_encode($zbblog), FALSE);// 首先把数组编码为json文本,然后把json数据解码,第二个参数为false时返回对象;
$article->Metas->zbblog = $zbblog; //保存对象数据,下次读取时就不用转换了;
$article->Save();
}下面就是调用数据,直接以对象形式输出 是不是方便快捷了许多?
$html = '';
if ($data = $article->Metas->zbblog) {
foreach ($data as $k => $v) {
$html .='
<input type="text" name="zbblog[' . $k . '][name]" value="' . $v->name. '">
<input type="text" name="zbblog[' . $k . '][age]" value="' . $v->age. '">
<input type="text" name="zbblog[' . $k . '][sex]" value="' . $v->sex. '">
';
}
echo $html;
}