Top Laravel Interview Questions & Answers 2022

  Suresh Ramani   Laravel   3 weeks ago
Top Laravel Interview Questions & Answers 2022 - TechvBlogs

What is Laravel Framework?

Laravel is an open-source PHP web application framework. It is a very well-documented, expressive, and easily learn the framework. Laravel is very developer-friendly as the framework can help beginners as well as advanced users. As you grow as a developer you can go more deep into Laravel functionalities and give more robust and enterprise solutions. It is based on Symfony and its source is GitHub licensed under MIT license terms. Released in the year 2011, it is featured as a modular packaging system.

It works more efficiently by accessing relational databases which makes application deployment, orientation, and development easy. There are various features associated with Laravel; object-relational mapping, query building, application logic development of applications, reverse routing.

Features of Laravel

Some of the main features of Laravel are:

  • Eloquent ORM
  • Query builder
  • Reverse Routing
  • Restful Controllers
  • Migrations
  • Database Seeding
  • Unit Testing
  • Homestead
  • Source code hosted on GitHub and licensed under MIT License.
  • Most Starred PHP Framework for custom software development on Github.
  • Its ability to use all of the new features of PHP sets it apart.
  • Friendly online community
  • Detailed documentation

Most Frequently Asked Laravel Interview Questions

1. What is the latest Laravel version?

The latest Laravel version is 8.x.

2. Does Laravel support caching?

Yes, Laravel provides support for popular caching backends like Memcached and Redis.

By default, Laravel is configured to use file cache driver, which is used to store the serialized or cached objects in the file system. For huge projects, it is suggested to use Memcached or Redis.

3. Define Composer

The composer is the package manager for the framework. It helps in adding new packages from the huge community into your laravel application. It generates a file(composer.json) in your project directory to keep track of all your packages.

4. Explain Events in Laravel

An event is an action or occurrence recognized by a program that may be handled by the program or code. Laravel events provide a simple observer implementation, that allows you to subscribe and listen for various events/actions that occur in your application.

All Event classes are generally stored in the app/Events directory, while their listeners are stored in the app/Listeners of your application.

5. What is the templating engine used in Laravel?

The templating engine used in Laravel is Blade. The blade gives the ability to use its mustache-like syntax with the plain PHP and gets compiled into plain PHP and cached until any other change happens in the blade file. The blade file has .blade.php extension.

6. What is Middleware in Laravel?

As the name suggests, middleware works as a middleman between request and response. Middleware is a form of HTTP requests filtering mechanism. For example, Laravel consists of middleware which verifies whether the user of the application is authenticated or not. If a user is authenticated and trying to access the dashboard then, the middleware will redirect that user to home page; otherwise, a user will be redirected to the login page.

There are two types of middleware available in Laravel:

Global Middleware

It will run on every HTTP request of the application.

Route Middleware

It will be assigned to a specific route.

We can always create a new middleware for our purposes. For creating a new middleware we can use the below artisan command:

php artisan make:middleware CheckAge

The above command will create a new middleware file in the app/Http/Middleware folder.

7. How to define environment variables in Laravel?

The environment variables can be defined in the .env file in the project directory. A brand new laravel application comes with a .env.example and while installing we copy this file and rename it to .env and all the environment variables will be defined here.

Some of the examples of environment variables are APP_ENV, DB_HOST, DB_PORT, etc.

8. List some features of Laravel?

  • Inbuilt CRSF (cross-site request forgery) Protection.
  • Inbuilt paginations
  • Reverse Routing
  • Query builder
  • Route caching
  • Database Migration
  • Job middleware
  • Lazy collections

9. What is an Artisan? List out some artisan commands

Artisan is the command-line interface/tool included with Laravel. It provides a number of helpful commands that can help you while you build your application easily.

Here are the list of some artisan command:-

  • php artisan list
  • php artisan help
  • php artisan tinker
  • php artisan up
  • php artisan down
  • php artisan --version
  • php artisan make model <ModelName>
  • php artisan make controller <ControllerName>

10. Can we use Laravel for Full Stack Development (Frontend + Backend)?

Laravel is the best choice to make progressive, scalable full-stack web applications. Full-stack web applications can have a backend in laravel and the frontend can be made using blade files or SPAs using Vue.js as it is provided by default. But it can also be used to just provide rest APIs to a SPA application.

Hence, Laravel can be used to make full-stack applications or just the backend APIs only.

11. What are the default route files in Laravel?

Below are the four default route files in the routes folder in Laravel:

  • web.php - For registering web routes.
  • api.php - For registering API routes.
  • console.php - For registering closure-based console commands.
  • channel.php - For registering all your event broadcasting channels that your application supports.

12. What is reverse Routing in Laravel?

Reverse routing in the laravel means the process that is used to generate the URLs which are based on the names or symbols. URLs are being generated based on their route declarations.

With the use of reverse routing, the application becomes more flexible and provides a better interface to the developer for writing cleaner codes in the View.

Route:: get('list', '[email protected]');

{{ HTML::link_to_action('[email protected]') }}

13. How to put Laravel applications in maintenance mode?

Maintenance mode is used to put a maintenance page to customers and under the hood, we can do software updates, bug fixes, etc. Laravel applications can be put into maintenance mode using the below command:

php artisan down

And can put the application again on live using the below command:

php artisan up

Also, it is possible to access the website in maintenance mode by whitelisting particular IPs.

14. Name aggregates methods of the query builder.

Aggregates methods of query builder are:

  • max()
  • min()
  • sum()
  • avg()
  • count()

15. What is a Route?

A route is basically an endpoint specified by a URI (Uniform Resource Identifier). It acts as a pointer in the Laravel application.

Most commonly, a route simply points to a method on a controller and also dictates which HTTP methods are able to hit that URI.

16. Why use Route?

Routes are stored inside files under the /routes folder inside the project’s root directory. By default, there are a few different files corresponding to the different “sides” of the application (“sides” come from the hexagonal architecture methodology).

17. Explain important directories used in a common Laravel application

Directories used in a common Laravel application are:

  • App: This is a source folder where our application code lives. All controllers, policies, and models are inside this folder.
  • Config: Holds the app’s configuration files. These are usually not modified directly but instead, rely on the values set up in the .env (environment) file at the root of the app.
  • Database: Houses the database files, including migrations, seeds, and test factories.
  • Public: Publicly accessible folder holding compiled assets and of course an index.php file.

18. What are service providers?

Service providers can be defined as the central place to configure all the entire Laravel applications. Applications, as well as Laravel's core services, are bootstrapped via service providers. These are powerful tools for maintaining class dependencies and performing dependency injection. Service providers also instruct Laravel to bind various components into Laravel's Service Container.

These powerful tools are used by developers to manage class dependencies and perform dependency injection. To create a service provider, we have to use the below-mentioned artisan command.

You can use php artisan make:provider ClientsServiceProvider artisan command to generate a service provider:

It has the below-listed functions in its file.

  • Register function
  • Boot function

19. What are available databases supported by Laravel?

The supported databases in laravel are:

  • PostgreSQL
  • SQL Server
  • SQLite
  • MySQL

20. What is Query Builder in Laravel?

Laravel's Query Builder provides more direct access to the database, an alternative to the Eloquent ORM. It doesn't require SQL queries to be written directly. Instead, it offers a set of classes and methods which are capable of building queries programmatically. It also allows specific caching of the results of the executed queries.

21. List some official packages provided by Laravel?

There are some official packages provided by Laravel which are given below:

1. Cashier

Laravel cashier implements an expressive, fluent interface to Stripe's and Braintree's subscription billing services. It controls almost all of the boilerplate subscription billing code you are dreading writing. Moreover, the cashier can also control coupons, subscription quantities, swap subscriptions, cancellation grace periods, and even generate invoice PDFs.

2. Envoy

Laravel Envoy is responsible for providing a clean, minimal syntax for defining frequent tasks that we run on our remote servers. Using Blade-style syntax, one can quickly arrange tasks for deployment, Artisan commands, and more. Envoy only provides support for Mac and Linux.

3. Passport

Laravel is used to create API authentication to act as a breeze with the help of Laravel passport. It further provides a full Oauth2 server implementation for the Laravel application in a matter of minutes. Passport is usually assembled on top of the League OAuth2 server which is maintained by Alex Bilbie.

4. Scout

Laravel Scout is used for providing a simple, driver-based solution for adding full-text search to the eloquent models. Using model observers, Scout automatically keeps search indexes in sync with eloquent records.

5. Socialite

Laravel Socialite is used for providing an expressive, fluent interface to OAuth authentication with Facebook, Twitter, Google, and Linkedln, etc. It controls almost all the boilerplate social authentication code that you are dreading writing.

22. What are the new features of Laravel 8?

Laravel 8 was released on the 8th of September 2020 with new additional features and some modifications to the existing features.

The following list shows the new features of Laravel 8:

  • Laravel Jetstream
  • Models directory
  • Model factory classes
  • Migration squashing
  • Time testing helpers
  • Dynamic blade components
  • Rate limiting improvements

23. What are the advantages of using the Laravel framework to build complex web applications?

There are many advantages of using the Laravel framework and some of them are listed below:

  • Laravel is free to use.
  • Configuration of application is simple and straightforward.
  • The framework supports the Model-View-Controller (MVC) architecture.
  • Inbuilt modules and libraries of Laravel help to speed up the development process.
  • The performance of Laravel applications is high.
  • Routing is easy.
  • It has a feature called Eloquent ORM that is used to handle database operations.
  • It has a templating engine called Blade.
  • Laravel has an inbuilt facility to support unit tests.
  • Community support is high.

24. What is MVC architecture?

MVC architecture is a design pattern that is used to develop web applications. It consists of three components named ModelView, and Controller. MVC design pattern also helps to speed up the development of the web application.

  • Model: In MVC architecture, the letter M stands for Models. Model is the central component of the MVC design pattern. It manages the data in the application.
  • View: In MVC architecture, the letter V stands for Views. A view displays data to the user.
  • Controller: In MVC architecture, the letter C stands for Controllers. A controller is used to handle user requests.

The below diagram shows the interactions within the MVC design pattern.

Top Laravel Interview Questions & Answers 2022 - TechvBlogs

25. What are Eloquent Models?

The Eloquent ORM included with Laravel provides a beautiful, simple ActiveRecord implementation for working with your database. Each database table has a corresponding Model which is used to interact with that table. Models allow you to query for data in your tables, as well as insert new records into the table.

26. What is the Facade Pattern used for?

Facades provide a static interface to classes that are available in the application's service container. Laravel facades serve as static proxies to underlying classes in the service container, providing the benefit of a terse, expressive syntax while maintaining more testability and flexibility than traditional static methods.

All of Laravel's facades are defined in the Illuminate\Support\Facades namespace. Consider:

use Illuminate\Support\Facades\Cache;

Route::get('/cache', function () {
    return Cache::get('key');

27. Explain validation in Laravel

Validation in programming is necessary to make sure the system is receiving the expected data. Like other frameworks, Laravel also has validations.

ValidatesRequests is the trait which is been used by Laravel classes for validating input data. For storing data we generally use create or store methods that we can define at Laravel routes along with a get method.

Laravel Validate method is available in Illuminate\Http\Request object. If the validation rule passes, your code will execute properly. If it fails then an exception will be thrown and the user will get a proper error response for HTTP requests whereas a JSON response will be generated if the request was an AJAX request.  

A basic example of how validation rules are defined will be like:

* Store a post.
* @param  Request $request
* @return Response
public function store(Request $request)
   $validatedData = $request->validate([
       'title' => 'required|unique:posts|max:255',
       'body' => 'required',

Title and body will be a required field. Validation rule execution will be sequential so if unique fails then 255 characters validation will not be executed.

28. What is CSRF protection and CSRF token?

First, let's understand CSRF - It's a cross-site request forgery attack. Cross-site forgeries are a type of malicious exploit where unauthorized commands can be executed on behalf of the authenticated user. Laravel generates a CSRF "token" automatically for each active user session. This token is used to verify that the authenticated user is the one actually making the requests to the application.

<form method="POST" action="/register">

If you're defining an HTML form in your application you should include a hidden CSRF token field in the form so that middleware (CSRF Protection middleware) can validate the request. VerifyCsrfToken middleware is included in the web middleware group. @csrf blade directive can be used to generate the token field.

If using JS driven application then you can attach your js HTTP library automatically attach the CSRF token with every HTTP request. resources/js/bootstrap.js is the default file that registers the value of the csrf-token meta tag with the HTTP library.

To remove URIs from CSRF in verifyCsrfToken we can use $except property where can provide URLs which we want to exclude.


namespace App\Http\Middleware;

use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware;

class VerifyCsrfToken extends Middleware
     * The URIs that should be excluded from CSRF verification.
     * @var array
    protected $except = [

29. List available types of relationships in Laravel Eloquent

Types of relationships in Laravel Eloquent are:

  • One to One
  • One to Many
  • Many to Many
  • Has One Through
  • Has Many Through
  • One to One (Polymorphic)
  • One to Many (Polymorphic)
  • Many to Many (Polymorphic)

Relationships are defined as a method in the model class. An example of One to One relation is shown below.


namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class User extends Model
     * Get the phone associated with the user.
    public function phone(){
        return $this->hasOne(Phone::class);

The above method phone on the User model can be called like: $user->phone or $user->phone()->where(...)->get().

We can also define One to Many relationships like below:


namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class User extends Model
     * Get the addresses for the User.
    public function addresses(){
        return $this->hasMany(Address::class);

Since a user can have multiple addresses, we can define a One to Many relations between the User and Address model. Now if we call $user->addresses, eloquent will make the join between tables and it will return the result.

30. How to get a current environment in Laravel?

$environment = App::environment();

31. What is the Laravel API rate limit?

It is a feature of Laravel. It provides handle throttling. Rate limiting helps Laravel developers to develop a secure application and prevent DDOS attacks.

32. Define Lumen

Lumen is a micro-framework. It is a smaller, and faster, version of building Laravel based services, and REST API.

33. What does ORM stand for?

ORM stands for Object Relational Mapping

34. What is Laravel Forge?

Laravel Forge is a tool that helps in organizing and designing a web application. Although the manufacturers of the Laravel framework developed it, it can automate the deployment of every web application that works on a PHP server.

35. How can you reduce memory usage in Laravel?

While processing a large amount of data, you can use the cursor method in order to reduce memory usage.

36. What is the difference between insert() and insertGetId() in Laravel?

  • insertGetId(): This method is also used to insert records into the database table. This method is used in the case when an id field of the table is auto-incrementing.

It returns the id of current inserted records.

  • Inserts(): This method is used to insert records into the database table. No need for the "id" should be autoincremented or not in the table.

37. How will you describe Fillable Attribute in a Laravel model?

In eloquent ORM, $fillable attribute is an array containing all those fields of table which can be filled using mass-assignment.

Mass assignment refers to sending an array to the model to directly create a new record in the Database.

38. What is query scope?

It is a feature of Laravel where we can reuse similar queries. We do not require to write the same types of queries again in the Laravel project. Once the scope is defined, just call the scope method when querying the model.

39. State the difference between authentication and authorization

Authentication means confirming user identities through credentials, while authorization refers to gathering access to the system.

40. Explain active record concept in Laravel

In active record, class map to your database table. It helps you to deal with CRUD operations.

41. What is the use of the DB facade?

DB facade is used to run SQL queries like create, select, update, insert, and delete.

42. What is Redis?

Redis is an open-source, advanced key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets, and sorted sets.

43. Define hashing in Laravel

It is the method of converting text into a key that shows the original text. Laravel uses the Hash facade to store the password securely in a hashed manner.

44. How will you explain Guarded Attribute in a Laravel model?

The guarded attribute is the opposite of fillable attributes.

In Laravel, fillable attributes are used to specify those fields which are to be mass assigned. Guarded attributes are used to specify those fields which are not mass assignable.

Read Also: Build Crud API with Node.js, Express, and MongoDB

45. What is throttling and how to implement it in Laravel?

Throttling is a process to rate-limit requests from a particular IP. This can be used to prevent DDOS attacks as well. For throttling, Laravel provides a middleware that can be applied to routes and it can be added to the global middlewares list as well to execute that middleware for each request.

Here’s how you can add it to a particular route:

Route::middleware('auth:api', 'throttle:60,1')->group(function () {
    Route::get('/user', function () {

This will enable the /user route to be accessed by a particular user from a particular IP only 60 times in a minute.

46. What are the steps to create packages in Laravel?

Follow these steps to successfully create a package in Laravel:

  • Creating a Folder Structure
  • Creating the Composer File
  • Loading the Package from the Main Composer.JSON File
  • Creating a Service Provider for Package
  • Creating the Migration
  • Creating the Model for the Table
  • Creating a Controller
  • Creating a Routes File
  • Creating the Views
  • Updating the Service Provider to Load the Package
  • Update the Composer File

47. How to get data between two dates in Laravel?

In Laravel, we can use whereBetween() function to get data between two dates.

Blog::whereBetween('published_at', [$firstDate, $secondDate])->get();

48. How to make a helper file in Laravel?

We can create a helper file using Composer. Steps are given below:

  • Please create a app/helpers.php the file that is in the app folder.
  • Add
    "files": [

    in "autoload" variable.
  • Now update your composer.json with composer dump-autoload or composer update

49. How to use session in Laravel?

1. Retrieving Data from session


2. Retrieving All session data


3. Remove data from the session


4. Storing Data in session

session()->put('key', 'value');

50. What are the difference between softDelete() & delete() in Laravel?

1. delete()

In case when we used to delete in Laravel then it removed records from the database table.

Blog::where('id', 1)->delete();
2. softDeletes()

To delete records permanently is not a good thing that’s why laravel used features are called SoftDelete. In this case, records did not remove from the table only the delele_at value was updated with the current date and time.
Firstly we have to add a given code to our required model file.

use SoftDeletes;
protected $dates = ['deleted_at'];

After this, we can use both cases.

Blog::where('id', 1)->delete();
Blog::where('id', 1)->softDeletes();

51. What are migrations in Laravel?

In simple, Migrations are used to create database schemas in Laravel. In migration files, we store which table to create, update or delete.

Each migration file is stored with its timestamp of creation to keep track of the order in which it was created. As migrations go up with your code in GitHub, GitLab, etc, whenever anyone clones your project they can run `PHP artisan migrate` to run those migrations to create the database in their environment. A normal migration file looks like below:


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

class CreateUsersTable extends Migration
     * Run the migrations.
     * @return void
    public function up()
        Schema::create('users', function (Blueprint $table) {
	      // Create other columns

     * Reverse the migrations.
     * @return void
    public function down()

The up() the method runs when we run php artisan migrate and down() method runs when we run php artisan migrate:rollback.

If we rollback, it only rolls back the previously run migration.

If we want to rollback all migrations, we can run php artisan migrate:reset.

If we want to rollback and run migrations, we can run php artisan migrate:refresh, and we can use php artisan migrate:fresh to drop the tables first and then run migrations from the start.

52. What are seeders in Laravel?

Seeders in Laravel are used to put data in the database tables automatically. After running migrations to create the tables, we can run php artisan db:seed to run the seeder to populate the database tables.

We can create a new Seeder using the below artisan command:

php artisan make:seeder <ClassName>

It will create a new Seeder like below:


use App\Models\Auth\User;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Seeder;

class UserTableSeeder extends Seeder
     * Run the database seeds.
    public function run()
        factory(User::class, 10)->create();

The run() the method in the above code snippet will create 10 new users using the User factory.

53. What are the factories in Laravel?

Factories are a way to put values in the fields of a particular model automatically. Like, for testing when we add multiple fake records in the database, we can use factories to generate a class for each model and put data in fields accordingly. Every new laravel application comes with database/factories/UserFactory.php which looks like below:


namespace Database\Factories;

use App\Models\User;
use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\Str;

class UserFactory extends Factory
    * The name of the factory's corresponding model.
    * @var string
   protected $model = User::class;

    * Define the model's default state.
    * @return array
   public function definition()
       return [
           'name' => $this->faker->name,
           'email' => $this->faker->unique()->safeEmail,
           'email_verified_at' => now(),
           'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password
           'remember_token' => Str::random(10),

We can create a new factory using the below command:

php artisan make:factory UserFactory --class=User

The above command will create a new factory class for the User model. It is just a class that extends the base Factory class and makes use of the Faker class to generate fake data for each column. With the combination of factory and seeders, we can easily add fake data into the database for testing purposes.

54. Define Implicit Controller

Implicit Controllers help you to define a proper route to handle controller action. You can define them in the route.php file with the Route:: controller() method.

55. What are policies classes?

Policies classes include the authorization logic of the Laravel application. These classes are used for a particular model or resource.

56. What is Route Model Binding?

When injecting a model ID to a route or controller action, you will often query to retrieve the model that corresponds to that ID. Laravel route model binding provides a convenient way to automatically inject the model instances directly into your routes.

57. Explain Laravel echo

It is a JavaScript library that makes it possible to subscribe and listen to channels of Laravel events. You can use the NPM package manager to install echo.

58. Explain homestead in the Laravel

Homestead is basically an official, pre-packaged, and vagrant virtual machine that is used to deliver Laravel developers and all the necessary tools in order to develop Laravel out of the box. This machine is also known to include Ubuntu, Gulp, Bower, and various other development tools that are useful in developing full-scale web applications.

59. Explain traits in Laravel

Laravel traits are a group of functions that you include within another class. A trait is like an abstract class. You cannot instantiate directly, but its methods can be used in concrete class.

Read Also: How To Install Vue 3 in Laravel 8 From Scratch

60. What is Lazy vs Eager Loading in Laravel?

Laravel Eloquent ORM provides two types of loading.

  • Lazy Loading: By default, accessing data in eloquent is "Lazy loaded"
  • Eager Loading: This can be achieved using with() Eloquent. Eager loading alleviates the N + 1 query problem.

61. Explain faker in Laravel

It is a type of module or packages which are used to create fake data. This data can be used for testing purposes.

It is can also be used to generate:

  • Numbers
  • Addresses
  • DateTime
  • Payments
  • Lorem text

62. Briefly describe the project structure of a typical Laravel project

The following list shows the project structure of a typical Laravel project.

  • app folder: The app folder is the location where the source code of the application resides. It contains five sub-folders named Console folder, Exceptions folder, Http folder, Models folder, and Providers folder. These sub-folders contain exception handlerscontrollers, middleware, service providers, and models.

Note: In Laravel 7, there is no specific folder called Models, and all model files are stored inside the app folder instead of the app/Models folder.

  • bootstrap folder: The bootstrap folder contains bootstrap files.
  • config folder: The config folder contains configuration files.
  • database folder: The database folder contains database files. It contains three sub-folders named factories folder, migrations folder and seeders folder, and the .gitignore file. These sub-folders contain a large set of data, database migrations, and seeds.
  • public folder: The public folder contains files that are used to initialize the application.
  • resources folder: The resources folder contains HTML, CSS, and JavaScript files. It contains four sub-folders named CSS folder, js folder, lang folder, and views folder.
  • routes folder: The routes folder contains route definitions.
  • storage folder: The storage folder contains cache files, session files, etc.
  • tests folder: The tests folder contains test files like unit test files.
  • vendor folder: The vendor folder contains all the composer dependency packages.
  • .env file: The .env file contains environmental variables.
  • composer.json file: The composer.json file contains dependencies.
  • package.json file: The package.json file is for the frontend, and it is similar to the composer.json file.

63. Name some HTTP response status codes?

HTTP status codes help to verify whether a particular HTTP request has been completed.

HTTP requests are categorized into five different groups. They are:

  • Informational responses (1XX)
  • Successful responses (2XX)
  • Redirections (3XX)
  • Client errors (4XX)
  • Server errors (5XX)

a) Informational responses: Status codes under this category indicate whether the request was received and understood.

The following list below shows informational responses.

  • 100: Continue
  • 101: Switching Protocols
  • 102: Processing
  • 103: Early Hints

b) Successful responses: Status codes under this category indicate whether the request was successfully received, understood and accepted.

The following list below shows successful responses.

  • 200: OK
  • 201: Created
  • 202: Accepted
  • 203: Non-Authoritative Information
  • 204: No Content
  • 205:Reset Content
  • 206: Partial Content
  • 207: Multi-Status
  • 208: Already Reported
  • 226: IM Used

c) Redirections: Status codes under this category indicate that further actions need to be taken to complete the request.

The following list below shows redirections.

  • 300: Multiple Choices
  • 301: Moved Permanently
  • 302: Found
  • 303: See Other
  • 304: Not Modified
  • 305: Use Proxy
  • 306: Switch Proxy
  • 307: Temporary Redirect
  • 308: Permanent Redirect

d) Client errors: Status codes under this category indicate errors caused by the client.

The following list below shows client errors.

  • 400: Bad request
  • 401: Unauthorized
  • 402: Payment required
  • 403: Forbidden
  • 404: Not found
  • 405: Method not allowed
  • 406: Not acceptable
  • 410: Gone

e) Server errors: Status codes under this category indicate errors caused by the server.

The following list below shows server errors.

  • 500: Internal server error
  • 501: Not implemented
  • 502: Bad gateway
  • 503: Service unavailable
  • 504: Gateway timeout

64. What are the common tools used to send emails in Laravel?

The following list below shows some common tools that can be used to send emails in Laravel.

  • Mailtrap
  • Mailgun
  • Mailchimp
  • Mandrill
  • Amazon Simple Email Service (SES)
  • Swiftmailer
  • Postmark 

65. Briefly describe some common collection methods in Laravel

The following list shows some common collection methods:

1. first() – This method returns the first element in the collection.


collect([1, 2, 3])->first();
// It returns 1 as the output.

2. unique(): This method returns all unique items in the collection.


$collection = collect([1, 3, 2, 2, 4, 4, 1, 2, 5]);
$unique = $collection->unique();
// It returns [1, 2, 3, 4, 5] as the output.

3. contains(): This method checks whether the collection contains a given item.


$collection = collect(['student' => 'Sachin', 'id' => 320]);
// It returns true as the output.
// It returns false as the output.

4. get(): This method returns the item at a given key.


$collection = collect(['car' => 'BMW', 'colour' => 'black']);
$value = $collection->get('car');
// It returns "BMW" as the output.

5. toJson(): This method converts the collection into a JSON serialized string.


$collection = collect(['student' => 'Sachin', 'id' => 320]);
// It returns "{"student":"Sachin","id":320}" as the output.

6. toArray(): This method converts the collection into a plain PHP array.


$collection = collect(['student' => 'Sachin', 'id' => 320]);
// It returns ["student" => "Sachin","id" => 320,] as the output

7. join(): This method joins the collection’s values with a string.


collect(['x', 'y', 'z'])->join(', '); 
// It returns "x, y, z" as the output.
collect(['x', 'y', 'z'])->join(', ', ', and '); 
// It returns "x, y, and z" as the output.
collect(['x', 'y'])->join(', ', ' and '); 
// It returns "x and y" as the output.
collect(['x'])->join(', ', ' and '); 
// It returns "x" as the output.
collect([])->join(', ', ' and '); 
// It returns "" as the output.

8. isNotEmpty(): This method returns true if the collection is not empty; otherwise, it returns false.


// It returns false as the output.

9. Implode(): This method joins the items in a collection.


$collection = collect([
    ['student_id' => 1, 'name' => 'Bob'],
    ['student_id' => 2, 'name' => 'David'],
    ['student_id' => 3, 'name' => 'Peter'],
$collection->implode('name', ', ');
// It returns "Bob, David, Peter" as the output.

10. last(): This method returns the last element in the collection.


collect([1, 2, 3])->last();
// It returns 3 as the output.

66. What do you understand by Unit testing?

Unit testing is built-in testing provided as an integral part of Laravel. It consists of unit tests that detect and prevent regressions in the framework. Unit tests can be run through the available artisan command-line utility.

67.  What do you understand by Lumen?

Lumen is a PHP micro-framework built on Laravel's top components. It is created by Taylor Otwell (creator of Laravel). It is created for building Laravel based micro-services and blazing fast APIs. It is one of the fastest micro-frameworks available. Lumen is not a complete web framework like Laravel and is used for creating APIs only. Therefore, most of the components, such as HTTP sessions, cookies, and templating, are excluded from Lumen. Lumen provides support for features such as logging, routing, caching queues, validation, error handling, middleware, dependency injection, controllers, blade templating, command scheduler, database abstraction, the service container, and Eloquent ORM, etc.

One can install Lumen using composer by running the command given below:

composer create-project --prefer-dist laravel/lumen blog

68. How can we get the user's IP address in Laravel?

We can get the user's IP address using:

public function getUserIp(Request $request){  
  // Getting ip address of remote user  
  return $request->ip();  

69. What is the use of the Eloquent cursor() method in Laravel?

The cursor method allows us to iterate through our database using a cursor, which will only execute a single query. While processing large amounts of data, the cursor method may be used to reduce your memory usage greatly.

foreach (Product::where('name', 'bar')->cursor() as $product) {

70. What is open source software?

Open-source software is software in which source code is freely available. The source code can be shared and modified according to the user's requirements.

71. What is Localization in Laravel?

It is a feature of Laravel that supports various languages to be used in the application. A developer can store strings of different languages in a file, and these files are stored in the resources/lang folder. Developers should create a separate folder for each supported language.

72. Explain the concept of encryption and decryption in Laravel

It is a process of transforming any message using some algorithms in such a way that the third user cannot read information. Encryption is quite helpful to protect your sensitive information from an intruder.

Encryption is performed using a Cryptography process. The message which is to be encrypted is called a plain message. The message obtained after the encryption is referred to as a cipher message. When you convert cipher text to plain text or message, this process is called decryption.

73. How to generate a request in Laravel?

Use the following artisan command in Laravel to generate a request:

php artisan make:request UploadFileRequest

74. What is composer lock in Laravel?

After running the composer install in the project directory, the composer will generate the composer.lock file.It will keep a record of all the dependencies and sub-dependencies which is being installed by the composer.json.

75. How to use skip() and take() in Laravel Query?

We can use skip() and take() both methods to limit the number of results in the query. skip() is used to skip the number of results and take() is used to get the number of results from the query.



// skip first 5 records

// get 10 records after 5

76. How to rollback a particular migration in Laravel?

If you want to rollback a specific migration, look in your migrations table, you’ll see each migration table has its own batch number. So, when you roll back, each migration that was part of the last batch gets rolled back.

Use this command to rollback the last batch of migration:

php artisan migrate:rollback --step=1

Now, suppose you only want to roll back the very last migration, just increment the batch number by one. Then next time you run the rollback command, it’ll only roll back that one migration as it is a batch of its own.

77. What are the advantages of Queue?

  • In Laravel, Queues are very useful for taking jobs, pieces of asynchronous work, and sending them to be performed by other processes and this is useful when making time-consuming API calls that we don’t want to make your users wait for before being served their next page.
  • Another advantage of using queues is that you don’t want to work the lines on the same server as your application. If your jobs involve intensive computations, then you don’t want to take risks in those jobs taking down or slowing your web server.

78. What is tinker in Laravel?

Laravel Tinker is a powerful REPL tool that is used to interact with the Laravel applications with the command line in an interactive shell. Tinker came with the release of version 5.4 is extracted into a separate package.

Read Also: How to Manage and Use Apache virtual hosts in Ubuntu

79. Please write some additional where Clauses in Laravel?

Laravel provides various methods that we can use in queries to get records with our conditions.

These methods are given below:

  • where()
  • orWhere()
  • whereBetween()
  • orWhereBetween()
  • whereNotBetween()
  • orWhereNotBetween()
  • wherein()
  • whereNotIn()
  • orWhereIn()
  • orWhereNotIn()
  • whereNull()
  • whereNotNull()
  • orWhereNull()
  • orWhereNotNull()
  • whereDate()
  • whereMonth()
  • whereDay()
  • whereYear()
  • whereTime()
  • whereColumn()
  • orWhereColumn()
  • whereExists()

80. How to use updateOrInsert() method in Laravel Query?

updateOrInsert() method is used to update an existing record in the database if matching the condition or create if no matching record exists.

Its return type is Boolean.


DB::table(‘blogs’)->updateOrInsert([Conditions],[fields with value]);



     ['email' => '[email protected]', 'title' => 'Laravel Interview Questions'],

     ['content' => 'Laravel Interview Questions']


81. What is the use of Accessors and Mutators?

Laravel accessors and mutators are customs, user-defined methods that allow you to format Eloquent attributes. Accessors are used to format attributes when you retrieve them from the database.

1. Defining an accessor

The syntax of an accessor is where getNameAttribute() Name is capitalized attribute you want to access.

public function getNameAttribute($value)
    return ucfirst($value);
2. Defining a mutator

Mutators format the attributes before saving them to the database.

The syntax of a mutator function is where setNameAttribute() The name is a camel-cased column you want to access. So, once again, let’s use our Name column, but this time we want to make a change before saving it to the database:

public function setNameAttribute($value)
    $this->attributes['name'] = ucfirst($value);

82. What are gates in Laravel?

Laravel Gate holds a sophisticated mechanism that ensures the users that they are authorized for performing actions on the resources. The implementation of the models is not defined by Gate. This renders the users the freedom of writing each and every complex spec of the use case that a user has in any way he/she wishes. Moreover, the ACL packages can be used as well with the Laravel Gate. With the help of Gate, users are able to decouple access logic and business logic. This way clutter can be removed from the controllers.

83. What is Package in Laravel? Name some Laravel packages

Developers use packages to add functionality to Laravel. Packages can be almost anything, from great workability with dates like Carbon or an entire BDD testing framework such as Behat. There are standalone packages that work with any PHP frameworks, and other specially interned packages which can be only used with Laravel. Packages can include controllers, views, configuration, and routes that can optimally enhance a Laravel application.

There are many packages are available nowadays also Laravel has some official packages that are given below:-
  • Cashier
  • Dusk
  • Envoy
  • Passport
  • Socialite
  • Scout
  • Telescope etc

84. is Laravel good for API?

Laravel is an appropriate choice for PHP builders to use for building an API, especially when a project’s necessities are not exactly defined. It's a comprehensive framework suitable for any type of application development, is logically structured, and enjoys robust community support.

Laravel includes factors for not solely API development, but front-end templating and single-page software work, and other aspects that are totally unrelated to only building a net utility that responds to REST HTTP calls with JSON.

85. How to get current route name?


86. How to create model controller and migration in a single artisan command in Laravel?

php artisan make:model ModelNameEnter -mcr

87. What is mix in Laravel?

Mix in Laravel renders one fluent API to define Webpack creation steps for the application of Laravel that uses various common CSS as well as JavaScript preprocessors. With the help of one easy method of chaining, the user is able to fluently define the asset pipeline.

88. What are string and array helpers functions in Laravel?

Laravel includes a number of global "helper" string and array functions. These are given below:-

Laravel Array Helper functions
  • Arr::add()
  • Arr::has()
  • Arr::last()
  • Arr::only()
  • Arr::pluck()
  • Arr::prepend() etc
Laravel String Helper functions
  • Str::after()
  • Str::before()
  • Str::camel()
  • Str::contains()
  • Str::endsWith()
  • Str::containsAll() etc

Read Also: Laravel 8 Server Side Datatables Tutorial

If you want to manage your VPS / VM Server without touching the command line go and  Checkout this linkServerAvatar allows you to quickly set up WordPress or Custom PHP websites on VPS / VM in a  matter of minutes.  You can host multiple websites on a single VPS / VM, configure SSL certificates, and monitor the health of your server without ever touching the command line interface.

If you have any queries or doubts about this topic please feel free to contact us. We will try to reach you.

Suresh Ramani - Author - TechvBlogs
Suresh Ramani
Full Stack Developer