GridFieldAddNewMultiClass::handleAdd PHP Method

handleAdd() public method

Handles adding a new instance of a selected class.
public handleAdd ( GridField $grid, SS_HTTPRequest $request ) : GridFieldAddNewMultiClassHandler
$grid GridField
$request SS_HTTPRequest
return GridFieldAddNewMultiClassHandler
    public function handleAdd($grid, $request)
    {
        $class = $request->param('ClassName');
        $classes = $this->getClasses($grid);
        $component = $grid->getConfig()->getComponentByType('GridFieldDetailForm');
        if (!$component) {
            throw new Exception('The add new multi class component requires the detail form component.');
        }
        if (!$class || !array_key_exists($class, $classes)) {
            throw new SS_HTTPResponse_Exception(400);
        }
        $handler = Object::create($this->itemRequestClass, $grid, $component, new $class(), $grid->getForm()->getController(), 'add-multi-class');
        $handler->setTemplate($component->getTemplate());
        return $handler;
    }