Skip to main content

Creating First CRUD

Premium
4 min read

Let's start by creating our base API application with our first CRUD - Categories:


Creating a new Laravel Project

Let's start by creating a new Laravel project. Open your terminal and run the following command:

laravel new laravel-api-flutter-api-code

Then we will select None as our Starter kit:


Creating our First Model and Migration

Let's create our first model and migration for our categories. Run the following command:

php artisan make:model Category -m

Then we fill in our fields:

Migration

Schema::create('categories', function (Blueprint $table) {
$table->id();
$table->foreignId('user_id')->nullable()->constrained();
$table->string('name');
$table->timestamps();
});

Then, we prepare our model:

app/Models/Category.php

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
 
class Category extends Model
{
use HasFactory;
 
protected $fillable = [
'user_id',
'name',
];
 
public function user(): BelongsTo
{
return $this->belongsTo(User::class);
}
}

Creating a Controller

Let's create our API Resource Controller for our categories. Run the following command:

php artisan make:controller Api/CategoryController --resource --api --model=Category

This will create a new controller with all the necessary methods for our CRUD:

app/Http/Controllers/Api/CategoryController.php

use App\Http\Controllers\Controller;
use App\Models\Category;
use Illuminate\Http\Request;
 
class CategoryController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
//
}
 
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
//
}
 
/**
* Display the specified resource.
*/
public function show(Category $category)
{
//
}
 
/**
* Update the specified resource in storage.
*/
public function update(Request $request, Category $category)
{
//
}
 
/**
* Remove the specified resource from storage.
*/
public function destroy(Category $category)
{
//
}
}

Returning First API Response

To keep this simple, we will add the...

The Full Lesson is Only for Premium Members

Want to access all of our courses? (30 h 41 min)

You also get:

55 courses
Premium tutorials
Access to repositories
Private Discord
Get Premium for $129/year or $29/month

Already a member? Login here

Comments & Discussion

FW
Felix Wei ✓ Link copied!

Hi Povilas, We need react native with laravel API as well

PK
Povilas Korop ✓ Link copied!

We'll think about it and I will ask the audience whether there's a real demand :)

TJ
Teodosio Jimenez Morrobel ✓ Link copied!

Hi Povilas, it would be interesting to have small course books for text-based courses.

We'd Love Your Feedback

Tell us what you like or what we can improve

Feel free to share anything you like or dislike about this page or the platform in general.