2009-09-16 70 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