0

Propel の変数のケーシングに問題があります

動作する現在のコード:

$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();

それはどのように可能ですか?

4

2 に答える 2

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);
}
于 2012-06-22T12:11:10.887 に答える