diff --git a/laravel/database/schema/table.php b/laravel/database/schema/table.php index 9eee0cca..4af83422 100644 --- a/laravel/database/schema/table.php +++ b/laravel/database/schema/table.php @@ -79,7 +79,7 @@ public function primary($columns, $name = null) * @param string $name * @return Fluent */ - public function unique($columns, $name) + public function unique($columns, $name = null) { return $this->key(__FUNCTION__, $columns, $name); } @@ -91,7 +91,7 @@ public function unique($columns, $name) * @param string $name * @return Fluent */ - public function fulltext($columns, $name) + public function fulltext($columns, $name = null) { return $this->key(__FUNCTION__, $columns, $name); } @@ -103,7 +103,7 @@ public function fulltext($columns, $name) * @param string $name * @return Fluent */ - public function index($columns, $name) + public function index($columns, $name = null) { return $this->key(__FUNCTION__, $columns, $name); } @@ -118,9 +118,17 @@ public function index($columns, $name) */ public function key($type, $columns, $name) { - $parameters = array('name' => $name, 'columns' => (array) $columns); + $columns = (array) $columns; - return $this->command($type, $parameters); + // If no index name was specified, we will concatenate the columns and + // append the index type to the name to generate a unique name for + // the index that can be used when dropping indexes. + if (is_null($name)) + { + $name = implode('_', $columns).'_'.$type; + } + + return $this->command($type, compact('name', 'columns')); } /**