In my last post we set up Inertia and Adonis. Now that we have a solid foundation to build upon, let us continue fleshing out our CRM app.
Our First Controller
In my previous post we used a closure route to test everything worked end-to-end. This is fine for simple one-off routes (things like the "about" page for instance), but for more demanding routes, we'll usually reach for a controller.
Let us therefore use ace
to scaffold a resourceful controller:
node ace make:controller user -r
Take a moment to look at the new controller, Ace
created for you. This is a basic template for our future CRUD operations:
import { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'
export default class UsersController {
public async index ({}: HttpContextContract) {
}
public async create ({}: HttpContextContract) {
}
public async store ({}: HttpContextContract) {
}
public async show ({}: HttpContextContract) {
}
public async edit ({}: HttpContextContract) {
}
public async update ({}: HttpContextContract) {
}
public async destroy ({}: HttpContextContract) {
}
}
Now, let's connect some routes to the users controller.
Configuring Resource Routes
Open start/routes.ts
and delete the route we previously created. Instead add this:
Route.resource('users', 'UsersController');
This doesn't look like much, but let's see what routes were automatically created for us:
node ace list:routes
Pretty neat! Adonis automatically created a route for each controller method.
Top comments (0)