Example #1
0
 /**
  * 构造函数
  *
  * @param QDB_ActiveRecord_Meta $meta
  * @param array $settings
  *
  * @access private
  */
 function __construct(QDB_ActiveRecord_Meta $meta, array $settings)
 {
     parent::__construct($meta, $settings);
     if ($meta->idname_count > 1) {
         throw new QDB_ActiveRecord_CompositePKIncompatibleException($this->_meta->class_name, __CLASS__);
     }
 }
Example #2
0
 /**
  * 撤销插件绑定
  */
 function unbind()
 {
     parent::unbind();
     $pn = $this->_settings['password_prop'];
     if (is_null($this->_saved_state['password_prop'])) {
         unset($this->_meta->update_reject[$pn]);
     } else {
         $this->_meta->update_reject[$pn] = $this->_saved_state['password_prop'];
     }
 }
Example #3
0
 function __construct(QDB_ActiveRecord_Meta $meta, array $settings)
 {
     parent::__construct($meta, $settings);
     if (empty($this->_settings['props']) || !is_array($this->_settings['props'])) {
         throw new QException(__("Missing \"props\" parameter in \"%s\" Model", $meta->class_name));
     }
     foreach ($this->_settings['props'] as $prop => &$_config) {
         if (!isset($_config['mapping_name'])) {
             $_config['mapping_name'] = "{$prop}_formatted";
         }
         if (isset($this->_meta->prop[$_config['mapping_name']])) {
             throw new QException(__("\"%s\" prop has been set up, you must use another mapping name", $_config['mapping_name']));
         }
         if (!isset($_config['formatter'])) {
             $_config['formatter'] = "serialize";
         }
         $_config['prop_name'] = $prop;
         $this->_meta->setPropGetter($_config['mapping_name'], array("Model_Behavior_Formatter_{$_config['formatter']}", 'get'), $_config);
         $this->_meta->setPropSetter($_config['mapping_name'], array("Model_Behavior_Formatter_{$_config['formatter']}", 'set'), $_config);
     }
 }
Example #4
0
 /**
  * 撤销绑定
  */
 function unbind()
 {
     parent::unbind();
     $this->_meta->removeAssoc($this->_settings['childs_mapping']);
     $this->_meta->removeAssoc($this->_settings['parent_mapping']);
 }