Laravel TomatoPHP Admin & CRUD generator
Tags: laravel, tomato, generator, php
Published: 2023-02-03 21:34:45

Hi, community.
Have you tried to build an SPA app? As a full stack developer I think it's straightforward to do that by using some frontend tech as a backend do you try it?

now it's easy to do that by using Splade it's a new package that supports building SPA apps with just Blade and It will make a lot of changes to the Laravel community.

because of this new tech we are on the TomatoPHP team going to build something unique with FilamentPHP UI and Splade Tech to check out a new Dashboard & CRUD generator to make your development faster and cleaner.

## Demo

now you can check our demo [here](https://demo.tomatophp.com)

## Features

- SPA App With Blade
- CURD Generator Web / API
- Support HMVC Architecture
- Authentication & User Manager
- Responsive UI Using Filament Template
- RTL/Dark Mode Support
- Ready to Use Breeze Tool Kit Support RTL/Dark Mode
- Ready to Use Arabic / English Translations
- Easy To use Menu With Provider

## Install

{% embed https://youtu.be/MdJPtoFn2xc %}

you can start checking this admin panel by this command on a fresh Laravel project.

```bash
composer require tomatophp/tomato-admin
```

after installing it use this command to easily publish assets and make your dashboard ready

```bash
php artisan tomato-admin:install
```

now build your assets 

```bash
yarn & yarn build
```

now your admin panel is ready to use. 

## Start Your First CRUD

you can build a CRUD after you make a migration for your table, let's say you need to build a customer's table through this migration.

you can create a new migration

```bash
php artisan make:migration create_customers_table
```

and after that, you can build your customer table schema.

```php

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreateCustomersTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('customers', function (Blueprint $table) {
            $table->id();
            $table->string('name')->index();
            $table->longText('bio')->nullable();
            $table->string('email')->unique()->index();
            $table->string('phone');
            $table->text('address')->nullable();
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('customers');
    }
}
```

run migration to create the table

```bash
php artisan migrate
```

and here is the tomato step just use this command

```bash
php artisan tomato:generate
```

it will ask you about the table name you generate a migration for, and if you like to use Laravel Modules, you can just say `y` on the next ask.

now register the menu to your config `config/tomato-admin` and you can find the menu class on `App\Menus` and clear your config

```bash
php aritsan config:cache
```

BOM.. your CRUD is ready.


## What is next?

are we building just an empty admin panel? no you build a lot of plugins 

![Tomato Roles](https://github.com/tomatophp/tomato/blob/master/art/roles.png?raw=true)

- tomato roles
- tomato settings
- tomato notifications
- tomato forms
- tomato API
- tomato artisan 
- tomato browser
- tomato components
- tomato logs
- tomato dusk
- tomato backup
- tomato translations
- tomato subscription

these plugins make your app very easy to build and we have a greater support community you can get full docs of this package on this [link](https://docs.tomatophp.com)