Recently Released.
Newly Released in the last 30 days
![Video preview](https://videos.adocasts.com/68bde41a-ceb4-4bf5-987b-0d31aa76f817/preview.webp)
![Adocasts Plus Exclusive](/imgs/plus-badge-100.png)
![Organizing your AdonisJS Logic](/img/1/organizing-business-logic-operations_1721419785966.jpeg?w=650)
Three Approaches for Organizing your AdonisJS Business Logic Operations
In this lesson, we'll dive deep into three different ways we can organize our code; fat controllers, services, and actions. We'll also discuss circular dependencies, static and non-static service methods, and dependency injection.
![Video preview](https://videos.adocasts.com/5b82ed35-5526-4dba-b8bd-894fae08a21e/preview.webp)
![Thank You for Watching](/img/1/thank-you-for-watching_1719604958174.jpeg?w=650)
Thank You for Watching!
A quick thank you to all those who watched! If you have feedback, please let us know down in the comments.
![Video preview](https://videos.adocasts.com/cc0ff4b4-0df3-42e0-afa4-54b60700004f/preview.webp)
![Allowing Admins to Delete Movies](/img/1/allowing-admins-to-delete-movies-and-their-relationships_1719604792290.jpeg?w=650)
Allowing Admins to Delete Movies and their Relationships
In this lesson, we'll learn how we can safely delete movies and their relationships. We'll discuss how we need to consider foreign key constraints, and what to do when our deletes aren't set to cascade.
![Video preview](https://videos.adocasts.com/381d5a01-9b89-40ce-84fc-63ce516ce179/preview.webp)
![Managed Transactions and Syncing Movie Cast Members](/img/1/managed-transactions-and-syncing-cast-members_1719352476784.jpeg?w=650)
Managed Transactions and Syncing Movie Cast Members
In this lesson, we'll learn how we can use what we learned in the last lesson to also sync our cast members. We'll then extract this functionality into a service and wrap it within a managed database transactions.
![Video preview](https://videos.adocasts.com/4e59a1e8-3e50-43f8-bfee-ee50dfc1d930/preview.webp)
![Posting an Array of Objects with HTML Forms](/img/1/posting-an-array-of-objects-with-html-forms_1719352308432.jpeg?w=650)
Posting Objects, Arrays, and an Array of Objects in HTML Forms
In this lesson, we'll learn how we can use form field names to send an array of objects with our HTML form submission. We'll discuss pitfalls to watch out for and how we use AlpineJS to simplify index syncing within our field names.
Lessons.
![Video preview](https://videos.adocasts.com/68bde41a-ceb4-4bf5-987b-0d31aa76f817/preview.webp)
![Adocasts Plus Exclusive](/imgs/plus-badge-100.png)
![Organizing your AdonisJS Logic](/img/1/organizing-business-logic-operations_1721419785966.jpeg?w=650)
Three Approaches for Organizing your AdonisJS Business Logic Operations
In this lesson, we'll dive deep into three different ways we can organize our code; fat controllers, services, and actions. We'll also discuss circular dependencies, static and non-static service methods, and dependency injection.
![Video preview](https://videos.adocasts.com/381d5a01-9b89-40ce-84fc-63ce516ce179/preview.webp)
![Managed Transactions and Syncing Movie Cast Members](/img/1/managed-transactions-and-syncing-cast-members_1719352476784.jpeg?w=650)
Managed Transactions and Syncing Movie Cast Members
In this lesson, we'll learn how we can use what we learned in the last lesson to also sync our cast members. We'll then extract this functionality into a service and wrap it within a managed database transactions.
![Video preview](https://videos.adocasts.com/65996d54-3d3f-4f4f-8d4e-388f864a5bbc/preview.webp)
![Uploading Movie Cover Images](/img/1/uploading-movie-cover-image-in-our-create-or-edit-form_1718819681468.jpeg?w=650)
Uploading Movie Cover Images in our Create or Edit Form
In this lesson, we'll learn how to upload movie cover images when either creating or editing a movie via our create or edit form.
![Video preview](https://videos.adocasts.com/2b46194a-5849-4216-9498-689e375ace71/preview.webp)
![Download Storage Images](/img/1/using-a-wildcard-route-param-to-download-storage-images_1718819858520.jpeg?w=650)
Using A Wildcard Route Param to Download Storage Images
In this lesson, we'll learn how we can utilize a wildcard route parameter to dynamically download images that've been uploaded and stored within our application storage.
![One Form to Create or Edit Movies](/img/1/one-form-to-create-or-edit_1718391998933.jpeg?w=650)
How To Use One Form to Create or Edit Movies
In this lesson, we'll learn how we can merge our create form and edit form together into a create or edit form. We'll conditionally determine whether we'll be creating or editing based on our movie value and use EdgeJS features to simplify the process
![Video preview](https://videos.adocasts.com/08eeb95a-57e5-499e-a5fe-014494656798/preview.webp)
![Allowing Users To Edit Their Profile](/img/1/allowing-users-to-edit-their-profile_1716938760865.jpeg?w=650)
Using Dependency Injection to Update A User's Profile
In this lesson, we'll learn how to allow users to edit their profiles. We'll also cover how we can inject the HttpContext into a service instance using Dependency Injection (DI).
![Video preview](https://videos.adocasts.com/67f84e93-f484-4982-b3e5-49a30a742a7b/preview.webp)
![Filter by User's Watched Status](/img/1/filter-by-watched-status_1715810596993.jpeg?w=650)
Filtering By User's Watched Status
In this lesson, we'll learn how to add a filter to our user's watchlist allowing them to show only movies they have or have not watched.
![Video preview](https://videos.adocasts.com/c1df2600-42f6-4f64-af56-04695e184561/preview.webp)
![Listing and Filtering User Watchlist Items](/img/1/listing-and-filtering-watchlist-items-for-a-user_1715289606177.jpeg?w=650)
Listing and Filtering User Watchlist Items
In this lesson, we'll take our movie filter, and learn how we can reuse it to display a filterable list of the user's watchlist movies.
![Video preview](https://videos.adocasts.com/fab3ed6f-2d0d-4d3e-8a16-a787d02274ce/preview.webp)
![Validating Query String Filter Values](/img/1/validating-query-string-filter-values_1714943830507.jpeg?w=650)
Validating Query String Filter Values
In this lesson, we'll learn how to use VineJS, AdonisJS' Validator, to validate the filter properties and values we have within our query string.
![Video preview](https://videos.adocasts.com/0ba33b0c-1e03-42cc-a6ca-e1d695af70ad/preview.webp)
![How To Apply A Dynamic Sort Filter To Your Query](/img/1/how-to-apply-a-dynamic-sort-filter_1714514184731.jpeg?w=650)
How To Apply A Dynamic Sort Filter To Your Query
In this lesson, we'll learn how we can add a user-selected sort option to our filters. Then, we'll apply the selected filter to our movie query
![Video preview](https://videos.adocasts.com/e467679d-6fa7-4bb6-9851-f4528105a1d1/preview.webp)
![Joining SQL Tables To Order By A Related Column](/img/1/joining-tables-to-order-by-a-relationship_1714514355183.jpeg?w=650)
Joining SQL Tables To Order By A Related Column
In this lesson, we'll learn how to join a related table into our query and use that table to apply a sort via the relationship. We'll then see how we can conditionally apply this join only when it's needed for the selected order by.
![Video preview](https://videos.adocasts.com/7862dc23-bcde-4e60-9b99-20b8eeacf355/preview.webp)
![Singleton Services and the Idea of Caching](/img/1/singleton-services-and-the-idea-of-caching_1706651373039.jpeg?w=650)
Singleton Services and the Idea of Caching
In this lesson, we'll learn about singleton services and how to use them as a store to hold temporary information throughout our server's life by building a simple in-memory caching service.
![Video preview](https://videos.adocasts.com/253aa04f-65f5-477f-86fd-d49ce5c4c2ff/preview.webp)
![](/img/1/extracting-reusable-code-with-services_1706323187479.jpeg?w=650)
Extracting Reusable Code with Services
In this lesson, we'll learn about services and how we can use them to extract reusable code in a way that makes it super simple to use throughout your project.
![](/img/1/2022-LLA5-4_1644679623460.jpeg?w=650)
Service Providers & The IoC Container
We'll learn about Service Providers and how they interact with the IoC Container. We'll then put this to practice by wrapping a NodeJS package so it's easy to use within AdonisJS
![Static, Non-Static, and IOC Services](/img/1/2022-LLA5-3_1644679528635.jpeg?w=650)
Static, Non-Static, & Singleton Services
We'll learn what services are. We'll then discuss three different ways we can use them within our AdonisJS application, including static, non-static, and singleton services.
![](/img/1/eZlJ8s0QSNzsif2tr82AIxttb0H2J45EPK4OmHk4.png?w=650)
Let's Learn Adonis 5: Controllers, Services, Resources, and Namespacing
In this lesson, we'll be hammering down several Adonis topics in one swoop. We'll be covering Controllers, which in turn allow us to utilize Services, Resources, and Namespacing.