2012-06-22 24 views
0

我有在行走與變量的外殼煩惱行走保存:命名慣例

,工程當前代碼:

$this->_variables = array('Alias' => 'aliasOne', 'LocationId' => 1); 
$model = new Client(); 
$model->fromArray($this->_variables); 
$model->save(); 

但是由於我的API輸出的格式,我寧願代碼

$array = array('alias' => 'aliasOne', 'location_id' => 1); 
$model = new Client(); 
$model->fromArray($array); 
$model->save(); 

這怎麼可能?

+0

有你試過了嗎? – j0k

+0

是的,第二個不工作 – azz0r

回答

0

你可以讓代理fromArray與地圖數組客戶端模式,你的鑰匙,轉換成你的lib/model/om/BaseClient.php

public function myFromArray($arr, $keyType = BasePeer::TYPE_PHPNAME) 
{ 
    $map = array(
    'alias'  => 'Alias', 
    'location_id' => 'LocationId', 
    // you can add more 
); 

    $newArr = array(); 
    foreach ($arr as $key => $value) 
    { 
    // replace the key with the good one 
    if (array_key_exists($key, $map)) 
    { 
     $newArr[$map[$key]] = $value; 
    } 
    else 
    { 
     $newArr[$key] = $value; 
    } 
    } 

    $this->fromArray($newArr, $keyType); 
}