adminarchitect / core

AdminArchitect - Active Admin for Laravel
http://adminarchitect.com
MIT License
211 stars 66 forks source link

Form element default value fix. #28

Closed hugeval closed 6 years ago

hugeval commented 6 years ago

Hello, sometimes, it is necessary to set default value for particular form element, but there is no such feature. I know, there are "magnet params" feature, but it slightly differs from "default value" one. Also I know, there was setDefaultValue protected method, I've just renamed it to populateValue one and implemented new setDefaultValue method. So, using this pull request, you can set default value for form element, just calling setDefaultValue in MyModule::form() method, like this:

public function form()
{
        return $this
            ->scaffoldForm()
            ->update('number', function (FormElement $element) {
                return $element->setInput(
                    (new Number('number'))->setDefaultValue(date('Y'))
                );
            })
}
endihunter commented 6 years ago

@hugeval you can achieve the same result, by using the setValue method:

        return $this->scaffoldForm()
                    ->update('age', function($element) {
                        // Get current editable item.
                        $item = app('scaffold.model');

                        if (!$item->age) {
                            $element->getInput()->setValue(33);
                        }

                        return $element;
                    });