The Ezadev\Admin\Form class is used to generate a data model-based form. For example, there is amovies table in the database
CREATETABLE `movies` (`id`int(10) unsigned NOT NULL AUTO_INCREMENT,`title`varchar(255) COLLATE utf8_unicode_ci NOT NULL,`director`int(10) unsigned NOT NULL,`describe`varchar(255) COLLATE utf8_unicode_ci NOT NULL,`rate`tinyint unsigned NOT NULL,`released` enum(0, 1),`release_at`timestampNOT NULLDEFAULT'0000-00-00 00:00:00',`created_at`timestampNOT NULLDEFAULT'0000-00-00 00:00:00',`updated_at`timestampNOT NULLDEFAULT'0000-00-00 00:00:00',PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
The corresponding data model is App\Models\Movie, and the following code can generate themovies data form:
useApp\Models\Movie;useEzadev\Admin\Form;useEzadev\Admin\Facades\Admin;$form =newForm(newMovie);// Displays the record id$form->display('id','ID');// Add an input box of type text$form->text('title','Movie title');$directors = ['John'=>1,'Smith'=>2,'Kate'=>3,];$form->select('director','Director')->options($directors);// Add textarea for the describe field$form->textarea('describe','Describe');// Number input$form->number('rate','Rate');// Add a switch field$form->switch('released','Released?');// Add a date and time selection box$form->dateTime('release_at','release time');// Display two time column $form->display('created_at','Created time');$form->display('updated_at','Updated time');
Custom tools
The top right corner of the form has two button tools by default. You can modify it in the following way:
$form->tools(function (Form\Tools $tools) {// Disable `List` btn. $tools->disableList();// Disable `Delete` btn. $tools->disableDelete();// Disable `Veiw` btn. $tools->disableView(); // Add a button, the argument can be a string, or an instance of the object that implements the Renderable or Htmlable interface
$tools->add('<a class="btn btn-sm btn-danger"><i class="fa fa-trash"></i> delete</a>');});
Form footer
Use the following method to remove the elements of the form foot