Browse Source

Merge pull request #1143 from franzliedke/patch-38

Fix insert() method for related models.
Taylor Otwell 12 years ago
parent
commit
852b10e836
1 changed files with 14 additions and 5 deletions
  1. 14 5
      laravel/database/eloquent/relationships/has_one_or_many.php

+ 14 - 5
laravel/database/eloquent/relationships/has_one_or_many.php

@@ -7,16 +7,25 @@ class Has_One_Or_Many extends Relationship {
 	/**
 	 * Insert a new record for the association.
 	 *
+	 * If save is successful, the model will be returned, otherwise false.
+	 *
 	 * @param  Model|array  $attributes
-	 * @return bool
+	 * @return Model|false
 	 */
 	public function insert($attributes)
 	{
-		$attributes = ($attributes instanceof Model) ? $attributes->attributes : $attributes;
-
-		$attributes[$this->foreign_key()] = $this->base->get_key();
+		if ($attributes instanceof Model)
+		{
+			$attributes->set_attribute($this->foreign_key(), $this->base->get_key());
+			
+			return $attributes->save() ? $attributes : false;
+		}
+		else
+		{
+			$attributes[$this->foreign_key()] = $this->base->get_key();
 
-		return $this->model->create($attributes);
+			return $this->model->create($attributes);
+		}
 	}
 
 	/**