Я редактирую конкретное дополнение 5 и пытаюсь выяснить, как программа сохраняет значения в базе данных. Следующая функция — это то место, где происходит сохранение базы данных, но я не уверен, где находится функция 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», но die()
никогда не происходит, когда вставлен в эту функцию. Пожалуйста, помогите мне понять, как я должен сохранять значения в Concrete5 в базу данных! (Больше моего кода на: https://stackoverflow.com/questions/26940176/concrete5-add-on-extension-save-value-to-database).
@CaitlinHavener Ваш метод SaveRecord должен быть таким.
public function SaveRecord($data){
$data['my_array'] = serialize($data['my_array']);
parent::save($data);
}
обратитесь по этой ссылке конкретный5 документ
Других решений пока нет …