示例#1
0
 /**
  *  Takes a set of form data ($Form->_PostValues), validates them, and
  * inserts or updates them to the datatabase.
  *
  * @param array $FormPostValues An associative array of $Field => $Value pairs that represent data posted
  * from the form in the $_POST or $_GET collection.
  * @param array $Settings If a custom model needs special settings in order to perform a save, they
  * would be passed in using this variable as an associative array.
  * @return unknown
  */
 public function Save($FormPostValues, $Settings = FALSE)
 {
     // Define the primary key in this model's table.
     $this->DefineSchema();
     // See if a primary key value was posted and decide how to save
     $PrimaryKeyVal = GetValue($this->PrimaryKey, $FormPostValues, FALSE);
     $Insert = $PrimaryKeyVal === FALSE ? TRUE : FALSE;
     if ($Insert) {
         $this->AddInsertFields($FormPostValues);
     } else {
         $this->AddUpdateFields($FormPostValues);
     }
     // Validate the form posted values
     if ($this->Validate($FormPostValues, $Insert) === TRUE) {
         $Fields = $this->Validation->ValidationFields();
         $Fields = RemoveKeyFromArray($Fields, $this->PrimaryKey);
         // Don't try to insert or update the primary key
         if ($Insert === FALSE) {
             $this->Update($Fields, array($this->PrimaryKey => $PrimaryKeyVal));
         } else {
             $PrimaryKeyVal = $this->Insert($Fields);
         }
     } else {
         $PrimaryKeyVal = FALSE;
     }
     return $PrimaryKeyVal;
 }