2009-09-16 73 views
3

我已经得到了我想要更新我的模型值的数组。学说:设置模型值阵列

Doctrine_Access提供了一个函数setArray这是近正是我需要的 - 除了它关心的是没有在模型中字段的值。我希望那些被忽略。

一个小例子。假设我们有一个包含字段用户名的用户表。

$user = new User(); 
$user->setArray(array('username'=>'xyz'))->save(); 

这将工作!

$user = new User(); 
$user->setArray(array('username'=>'xyz','anotherKey'=>'anotherValue'))->save(); 

不。如果没有相关字段,我希望Doctrine忽略另一个关键字。 我的意图是,我不想在更新我的模型之前过滤我的数组。

什么是完成这件事的最干净和最简单的方法是什么?

回答

1

Doctrine_Record :: fromArray()解决它。 遗憾的是它并没有返回对象,所以它是无用的方法链接...

-1

这是非常有用的

添加Find方法模型:

class Address extends Doctrine_Record { 

    public static function factory() { 
     return new Address(); 
    } 

public function findById($id) { 
     $findObject = Doctrine::getTable('Address')->findOneByid($id); 
     return $findObject; 
    } 
.... 

,并用它

$address = Address::factory() 
     ->findById(13)->set('name', 'new data')->set('anotherfield','another data')->save(); 
+1

我想你误解了这个问题。他正在尝试创建一个新记录,实例化模型并设置数组中的值。你没有给他任何附近的方式。对不起,投票,得让别人知道这不是一个有用的答案。 – 2011-04-17 06:09:09