2014-12-12 1 views
0

Phalcon에서 게시 된 양식을 모델로 전달하고 모델 값을 업데이트 (또는 생성) 할 수 있습니까?POST 값에서 Phalcon 모델 업데이트

등과 같은 나는 같은 모델이있는 경우 :

<?php 
class User extends ModelBase 
{ 
    public $id; 
    public $first_name; 
    public $last_name; 
    public $email; 
    public $username; 
    public $password; 
    public $active;  

하고 save()를 호출 한 후 모델을 업데이트 한 (필드 이름이 동일 제공) 게시 된 배열을 전달하는 방법이 있나요?

답변

1

당신이 할 수 물론 : 또한 필요한 경우/업데이트 모델을 만들 수 $user->save()을 사용할 수 있습니다

$user = Users::find(1); 
$user->update($this->request->getPost()); 
// or 
$user->update($this->request->getPost(), array('first_name', 'last_name')); 

. 내가 팔콘이 기억하고있는 한, 데이터베이스에 primary_key 모델이 있는지에 따라 사용자 모델을 업데이트하거나 생성 할 것이다.

여기에 더 : request envupdating models.

+0

그래?! 그것은 굉장하게 들리고 많은 시간을 절약 할 것입니다! 나는 내가하고 싶은 변환이 있다면'setPost()'를 통해 Post 변수를 업데이트 할 수 있다고 생각한다. (함수가 존재한다고 가정하고 있는가?). 내 유일한 걱정은 사용자가 기술적으로 요청을 복사하고 모델에있는 필드 (예 : 암호 또는 액세스 수준 필드)를 추가하고이를 설정할 수 있다는 것입니다. 주석을 통해 모델의 특정 필드를 설정하거나 게시물에서 업데이트하지 못하도록 방지하는 등의 방법으로이를 방지 할 수 있습니까? – Lock

+0

설명서를 읽으십시오. 화이트리스트 필드를 설정할 수 있다고 말합니다. 필드의 블랙리스트 배열을 설정할 수 있다면 좋을 것입니다. – Lock

+0

업데이트를위한 블랙리스트를 기억하지 못합니다. 특수 효과를 파고 들지는 않았습니다. 나는'getPost ('field', ...)'수동으로 입력을 살피기 위해 사용하고있다. post vars를 업데이트하려면 post를 저장하고 값을 변경할 수있는 var를 만들 수 있습니다 ($ post = $ this-> getPost(); $ post [ 'foo'] = 'bar'; $ user-> update ($ post));). – jodator