Yii:ORMオブジェクトをJSONデータに変換
対外的なサービスインタフェースが必要な場合には、データベースから検索されたデータオブジェクトをJSON形式のデータに変換することがよくあります
Yiiでは、次のような有用な方法が提供されています.
CJSON::encode($object)
しかし、このメソッドのデフォルト実装では、関連オブジェクトのデータを含めることはできません.
関連データを出力するには、CJSONを派生させ、encodeメソッドを書き換える必要があります.
iefreer
Yiiでは、次のような有用な方法が提供されています.
CJSON::encode($object)
しかし、このメソッドのデフォルト実装では、関連オブジェクトのデータを含めることはできません.
関連データを出力するには、CJSONを派生させ、encodeメソッドを書き換える必要があります.
case 'object':
if ($var instanceof Traversable)
{
$vars = array();
foreach ($var as $k=>$v)
$vars[$k] = $v;
}
else
$vars = get_object_vars($var);
// related
foreach ($var->relations() as $key => $related)
{
if ($var->hasRelated($key))
{
$vars[$key] = $var->$key;
}
}
return '{' .
join(',', array_map(array('CJSON', 'nameValue'),
array_keys($vars),
array_values($vars)))
. '}';
iefreer