2014-11-17 4 views
2

나는 concrete5 애드온을 편집 중이며 프로그램이 데이터베이스에 값을 저장하는 방법을 파악하려고합니다. 다음 함수는 데이터베이스 저장이 일어나고 있지만 "parent :: save()"함수가 어디에 있는지 잘 모르겠습니다.Concrete5 MVC parent :: save() 데이터베이스 삽입 함수를 찾는 데 문제가있어서 데이터베이스에 저장하는 법

protected function SaveRecord() { 
     $func = 'jso'.'n_encode'; 
     $this->errors = is_array($this->errors) ? $func($this->errors) : $this->errors; 

     $this->effectiveDate = is_numeric($this->effectiveDate) ? date('Y-m-d', $this->effectiveDate) : $this->effectiveDate; 
     $this->expirationDate = is_numeric($this->expirationDate) ? date('Y-m-d', $this->expirationDate) : $this->expirationDate; 

     //var_dump($this); die(); 
     parent::Save(); 

     // a bit hacky, but we are saving the errors as JSON, and we might need to access them later. 
     $this->errors = (array) json_decode($this->errors); 
    } 

나는 그 클래스까지 부모를 따라 갔고 저장 기능이 없다. "adodb"클래스에서 save 함수를 찾을 때까지 부모를 따라 갔지만이 함수에 넣을 때 die()이 발생하지 않습니다. 제가 어떻게 Concrete5에서 값을 데이터베이스에 저장해야하는지 알아 내도록 도와주세요! (내 코드의 더 많은 것 : https://stackoverflow.com/questions/26940176/concrete5-add-on-extension-save-value-to-database).

답변

1

@CaitlinHavener SaveRecord 메서드는 다음과 같아야합니다.

public function SaveRecord($data){ 
    $data['my_array'] = serialize($data['my_array']); 
    parent::save($data); 
} 

데이터베이스에이 링크를 concrete5 document

+0

하지만 어떻게 저장 않는 값을 참조? parent :: save() 함수는 어디에 있습니까? – CaitlinHavener

+0

@CaitlinHavener 데이터베이스 테이블에 ** showTerms ** 필드를 추가했으면 packages/your_package/db.xml에서 테이블을 추가/변경하고 패키지를 업데이트하는 것을 잊지 마십시오. 그런 다음 ** showTerms ** 값을 $ data 배열에 추가하고 저장하십시오. 그것이 작동 될 수 있기를 바랍니다, 또는 더 많은 도움을 주셔서 감사합니다. 감사합니다 :) – chanchal

+0

그것을 알아 냈어! 도와 주셔서 정말 감사합니다! 당신이 친구가되고 싶다면 Skype에서 Caitlinhav입니다 :) – CaitlinHavener