コード例 #1
0
 /**
  * Stores any many-to-many associations or any one-to-many records that have been flagged for association
  *
  * @internal
  *
  * @param  string  $class             The class to store the related records for
  * @param  array   &$values           The current values for the main record being stored
  * @param  array   &$related_records  The related records array
  * @param  boolean $force_cascade     This flag will be passed to the fActiveRecord::delete() method on related records that are being deleted
  * @return void
  */
 public static function store($class, &$values, &$related_records, $force_cascade)
 {
     $table = fORM::tablize($class);
     $schema = fORMSchema::retrieve($class);
     foreach ($related_records as $related_table => $relationships) {
         foreach ($relationships as $route => $related_info) {
             if (!$related_info['associate']) {
                 continue;
             }
             $relationship = fORMSchema::getRoute($schema, $table, $related_table, $route);
             if (isset($relationship['join_table'])) {
                 fORMRelated::storeManyToMany($class, $values, $relationship, $related_info);
             } else {
                 $related_class = fORM::classize($related_table);
                 $related_class = fORM::getRelatedClass($class, $related_class);
                 fORMRelated::storeOneToStar($class, $values, $related_records, $related_class, $route, $force_cascade);
             }
         }
     }
 }