Skip to main content

Creating First CRUD

Premium
5 min read

We will start our course from creating Laravel API for two Models: Categories and Transactions. In the following sections, we will start creating a React Native mobile application which would use this API.

This is how our mobile app screen will look like, after consuming API for Categories:

Next, we build a Laravel project for the API.

Notice: The Laravel part is identical to the API we created in earlier Laravel API + Flutter course, we will even re-use the same GitHub repository. So if you are coming from there and have the API created, you can skip to the next section with React Native lessons.


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

Notice: again, you see the word "flutter" here but this is because we're re-using the same Laravel API lessons from Flutter + Laravel course.

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

G
genonline ✓ Link copied!

Thank you for this course and all the other ones! I've learned so much. I created a React Native starter app from what I learned. I'll share it here in case it can help anyone else.

https://github.com/genonline/react-native-laravel-starter-kit

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.