2009-09-16 5 views
3

내 모델을 업데이트하려는 값 배열이 있습니다.Doctrine : 모델 값을 배열로 설정하십시오.

Doctrine_Access는 모델에 필드가없는 값을 제외하고 거의 필요한 기능인 setArray를 제공합니다. 나는 그 사람들을 무시하고 싶다.

약간의 예. username 필드가있는 User 테이블이 있다고 가정 해 보겠습니다.

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

그럴 것이다!

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

그렇지 않습니다. 관련 필드가 없으면 Doctrine이 anotherKey를 무시하기를 원합니다. 모델을 업데이트하기 전에 배열을 필터링하고 싶지 않습니다.

이것을 수행하는 가장 깨끗하고 쉬운 방법은 무엇입니까?

답변

1

Doctrine_Record :: fromArray는()을 해결합니다. 는 불행히도 개체를 반환하지 않는, 그래서 방법 체인에 대한 쓸모 ...

-1

이 모델

추가 찾기 방법 유용

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

나는 당신이 그 질문을 오해했다고 생각합니다. 그는 모델을 인스턴스화하고 배열에서 값을 설정하여 새 레코드를 만들려고합니다. 당신은 그에게 가까이 가지 않았습니다. 아래로 투표하는 것에 대해 유감스럽게 생각합니다. 다른 사람들에게 이것이 유용한 대답이 아니라는 것을 알려야합니다. –

관련 문제