The OpenAdmin\Admin\Form class is used to generate a data model-based form. For example, there is amovies table in the database

    id          - integer
    title       - string
    director    - integer
    describe    - string
    rate        - tinyint
    released    - enum(0, 1)
    release_at  - timestamp
    created_at  - timestamp
    updated_at  - timestamp

The corresponding data model is App\Models\Movie, and the following code can generate themovies data form:

use App\Models\Movie;
use OpenAdmin\Admin\Form;
use OpenAdmin\Admin\Facades\Admin;

$form = new Form(new Movie);

// 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.

    // Disable `Delete` btn.

    // Disable `Veiw` btn.

    // 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>&nbsp;&nbsp;delete</a>');

Use the following method to remove the elements of the form foot

$form->footer(function ($footer) {

    // disable reset btn

    // disable submit btn

    // disable `View` checkbox

    // disable `Continue editing` checkbox

    // disable `Continue Creating` checkbox


Other methods

Disable submit btn:


Disable reset btn:


Ignore fields to store

$form->ignore('column1', 'column2', 'column3');

Set width for label and field

$form->setWidth(10, 2);

Set form action


Determine if the current form page is creating or updating



Submit confirmation

$form->confirm('Are you sure you want to save this page?', 'edit');

$form->confirm('Are you sure you want create this page?', 'create');

$form->confirm('Are you sur eyou want to save?');