diff --git a/src/Forms/GridField/GridFieldConfig.php b/src/Forms/GridField/GridFieldConfig.php index f74c530ab..72480c649 100644 --- a/src/Forms/GridField/GridFieldConfig.php +++ b/src/Forms/GridField/GridFieldConfig.php @@ -68,12 +68,12 @@ class GridFieldConfig } /** - * @param GridFieldComponent $component,... One or more components + * @param GridFieldComponent|GridFieldComponent[] $component,... One or more components, or an array of components * @return $this */ public function addComponents($component = null) { - $components = func_get_args(); + $components = is_array($component) ? $component : func_get_args(); foreach ($components as $component) { $this->addComponent($component); } diff --git a/tests/php/Forms/GridField/GridFieldConfigTest.php b/tests/php/Forms/GridField/GridFieldConfigTest.php index d9208bc26..8ea1d81fb 100644 --- a/tests/php/Forms/GridField/GridFieldConfigTest.php +++ b/tests/php/Forms/GridField/GridFieldConfigTest.php @@ -92,6 +92,19 @@ class GridFieldConfigTest extends SapphireTest ); } + public function testAddComponentsByArray() + { + $config = GridFieldConfig::create() + ->addComponents([ + $c1 = new MyComponent(), + ]); + + $this->assertEquals( + $c1, + $config->getComponentByType(MyComponent::class) + ); + } + public function testRemoveComponents() { $config = GridFieldConfig::create()