Frequently Asked Laravel Interview Questions

Q #1) What is Laravel?

Answer: Laravel is a free and open-source PHP framework that is used to develop complex web applications. It supports the Model-View-Controller (MVC) design pattern.

The Laravel framework is also the most popular PHP framework among web developers in the year 2020.

Q #2) What is the latest version of Laravel?

AnswerLaravel 8 is the latest version.

Q #3) What is the minimum compatible version of PHP for Laravel 7 and 8?

Answer: The minimum compatible PHP version for Laravel 7 is PHP 7.2.5 and for Laravel 8 is PHP 7.3.0

Q #4) What are the popular features of Laravel?

Answer: There are several popular features in Laravel. These are enlisted below.

  • Eloquent ORM
  • Query builder
  • Reverse routing
  • Class auto-loading
  • Restful controllers
  • Blade template engine
  • Lazy collection
  • Unit testing
  • Database seeding
  • Migrations

Q #5) What are the new features of Laravel 8?

Answer: Laravel 8 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

Q #6) Does Laravel support Bootstrap?

AnswerYes, Laravel supports the Bootstrap CSS framework.

Q #7) What are the advantages of using the Laravel framework to build complex web applications?

Answer: 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.

Q #8) Name a few competitors of Laravel?

Answer: The following list shows the top competitors. They are all among the top 10 PHP frameworks in 2020.

  • Codeigniter
  • Symfony
  • Yii
  • CakePHP
  • Zend Framework
  • Phalcon
  • FuelPHP

Q #9) What are the differences between Laravel and CodeIgniter frameworks?

Answer: There are several differences between Laravel and CodeIgniter frameworks, and some main differences are shown in the below table.

Laravel FrameworkCodeIgniter Framework
Relational object-orientedObject-oriented
Supports custom HTTPS routesDoes not support HTTPS routes fully
Has authentication class featuresNo built-in authentication features
Has an inbuilt unit testing featureNo inbuilt unit testing feature
Use blade templatesDoes not use blade templates
Not easy to learn for beginnersEasy to learn for beginners
Easy to develop REST APIsNot easy to develop REST APIs
Supports ORMDoes not support ORM

Q #10) What is MVC architecture?

Answer: 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.

Q #11) What is the command you can use to check whether you have installed the composer on your computer?

Answer: You can run the following command in the command prompt to check whether you have successfully installed the composer on your computer.

composer

Q #12) What are the server requirements for Installing Laravel version 8?

Answer: Installing Laravel Homestead will full-fill server requirements for installing Laravel 8.

If you are not using Laravel Homestead, your server should meet the following requirements:

  • PHP version 7.3 or above version
  • PHP extensions
    • BCMath PHP Extension
    • Ctype PHP Extension
    • Fileinfo PHP extension
    • JSON PHP Extension
    • Mbstring PHP Extension
    • OpenSSL PHP Extension
    • PDO PHP Extension
    • Tokenizer PHP Extension
    • XML PHP Extension

Q #13) Consider a situation where you have already installed Laravel 8 on your machine, and want to install a Laravel 7 project without uninstalling Laravel 8 from your machine. So, how are you going to install a Laravel 7 project?

Answer: It is simple. We can run the following command in the command prompt to install a Laravel 7 project.

composer create-project --prefer-dist laravel/laravel name_of_the_project "7.*"

Note: We have to specify the Laravel version we need to install as shown above.

Q #14) How can you check the installed Laravel version of a project.

Answer: Go to the project directory in the command prompt and run the following command:

php artisan --version

Alternatively, you can run the following command also.

php artisan -v

Q #15) What is the artisan command used to get a list of available commands?

Answer: Run the following command in the command prompt to get a list of available commands.

php artisan list

Q #16) Briefly describe the project structure of a typical Laravel project.

Answer: 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 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.
  • and few more files

Q #17) What are bundles in Laravel?

Answer: Bundles are used to increase the functionality of Laravel. In Laravel, bundles are popularly known as packages. It contains configuration, routes, migrations, views, etc.

Q #18) What is routing?

Answer: Routing is the process of accepting a request and sending it to the relevant function in the controller.

Q #19) What are the two main routing files found in Laravel?

Answer: The two main routing files are,

  • web.php file in the routes folder.
  • api.php file in the routes folder.

Q #20) What are the available router methods in Laravel?

AnswerThe following list shows the available router methods in Laravel:

  • Route::get($uri, $callback);
  • Route::post($uri, $callback);
  • Route::put($uri, $callback);
  • Route::patch($uri, $callback);
  • Route::delete($uri, $callback);
  • Route::options($uri, $callback);

Q #21) How to create a route? Briefly describe with an example.

Answer: A route can be created by using controllers or by adding the code directly to the route.

The following example shows how to create a route by adding the code directly to the route.

Example: Replace the code in routes/web.php file by adding the following code segment.

<?phpuse Illuminate\Support\Facades\Route; Route::get('/', function () { return "Welcome!"; });

Then, run the project on the browser. You will see Welcome! as the output.

Q #22) How many restful resource controllers in Laravel, and what are the actions handled by the restful resource controllers?

Answer: There are seven restful resource controllers in Laravel.

The following table shows the actions handled by the restful resource controllers in a Laravel application.

VerbPathActionRoute NameUse
GET/usersindexusers.indexget all users
GET/users/createcreateusers.createcreate a new user
POST/usersstoreusers.storestore user details
GET/users/{user}showusers.showget user details
GET/users/{user}/editeditusers.editedit user
PUT/PATCH/users/{user}updateusers.updateupdate user
DELETE/users/{user}destroyusers.destroydelete user

Q #23) What is Middleware?

Answer: Middleware behaves like a bridge and a filtering mechanism between a request and a response.

Q #24) How to identify a blade template file?

Answer: Usually, all blade template files reside inside the resources/views folder. Blade files have .blade.php extension.

Q #25) State the location where model files reside in a typical Laravel application?

Answer: There is a difference in the location where model files are stored in a Laravel 7 application and a Laravel 8 application.

In a Laravel 7 application, usually, all model files reside inside the app folder.

In a Laravel 8 application usually, all model files reside inside the app/Models folder.

Q #26) What is seeding?

Answer: Developers need test data when developing an application. Seeding is the insertion of data to the database for testing purposes.

Q #27) What are the databases supported by the Laravel framework?

Answer: The following list below shows the supported databases:

  • MySQL 5.6+
  • PostgreSQL (Postgres) 9.4+
  • SQLite 3.8.8+
  • SQL Server 2017+

Q #28) What are the aggregate methods provided by the query builder in Laravel?

Answer: The following list shows the aggregate methods provided by the query builder:

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

Q #29) Name a few common artisan commands used in Laravel? Also, state the function of each command.

Answer: The following list shows some of the important artisan commands used in Laravel.

  • php artisan route:list: This artisan command is used to list all registered routes.
  • php artisan make:controller Controller_NameThis artisan command is used to create a controller.
  • php artisan make:middleware Middleware_NameThis artisan command is used to create a middleware.
  • php artisan make:migration create_table-name_table: This artisan command is used to create a migration.
  • php artisan migrate: This artisan command is used to run database migrations.
  • php artisan tinker: This artisan command is used to interact with your application.
  • php artisan make:seeder Seeder_Name: This artisan command is used to create a seeder.
  • php artisan make:model Model_Name: This artisan command is used to create a model.
  • php artisan make:mail Mail_Class_Name: This artisan command is used to create a mail class.

Q #30) Rahul wrote the following validation rules for a file uploading field.

$request->validate([‘file’ => ‘required|mimes:doc,pdf|max:2048’]);

Briefly explain the above validation rules.

Answer: In the above validation, Rahul used three validation rules. They are,

  1. required: The required validation rule prevents the user from submitting the form without uploading a file. In other words, the file field is mandatory.
  2. mimes:doc,pdf: The mimes:doc,pdf validation rule only allows the user to upload a file which has .doc extension or .pdf extension.
  3. max:2048: The max:2048 validation rule only allows the user to upload a file with a maximum size of 2048 bytes.

Q #31) What is the purpose of a session in Laravel?

Answer: A session is used to store data and keeps track of users.

Q #32) What is Laravel authentication?

Answer: Laravel authentication is the process of verifying application users. It can be achieved by identifying the user’s username and password. Some other parameters may also use for authentication. If user credentials are valid, then the user is authenticated.

Laravel uses guards and providers for the authentication process. Guards define how users are authenticated for each request while providers define how users are retrieved from your persistent storage.

Q #33) What is a CSRF token?

Answer: CSRF is an abbreviation for Cross-Site Request Forgery. A CSRF token is a unique value that is generated by the server-side of the application and sent to the client.

CSRF token helps to protect web applications from attacks which force a user to perform an unwanted action (commonly known as CSRF attacks).

The following code segment shows how a CSRF token can be used when creating a form in Laravel.

<form action="/user" method="POST"> @csrf ... </form>

Q #34) Make a comparison between GET and POST methods?

Answer: There are several differences between GET and POST methods, and some of the important differences are listed in the below table.

GET MethodPOST Method
Request data from a specific resourceSend data to a server
Parameters are included in the URLParameters are included in the body
Data is visible in the URLData is not visible in the URL
Only allowed characters are ASCII charactersBoth ASCII characters and binary data are allowed
There is a limitation on data lengthNo limitation on data length
The request remains in the browser historyThe request does not remain in the browser history
The request is possible to bookmarkThe request is not possible to bookmark
Can be cachedCannot be cached
Security is less compared to the POST methodSecurity is high compared to the GET method
Cannot be used to send sensitive data such as passwordsCan be used to send sensitive data such as passwords

Q #35) What is authorization?

Answer: Authorization is the process of verifying whether authenticated users have the required permission to access the requested resources. Laravel uses gates for the authorization process.

Q #36) Name some HTTP response status codes?

Answer: 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

Q #37) What are the common tools used to send emails in Laravel?

Answer: 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

Q #38) Briefly describe some common collection methods in Laravel.

Answer: The following list shows some common collection methods:

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

Example:

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

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

Example:

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

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

Example:

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

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

Example:

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

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

Example:

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

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

Example:

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

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

Example:

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.

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

Example:

collect([])->isNotEmpty(); // It returns false as the output.

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

Example:

$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.

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

Example:

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

Q #39) What are official packages in Laravel?

AnswerThe following list below shows the official packages of Laravel 8:

  • Cashier (Stripe)
  • Cashier (Paddle)
  • Cashier (Mollie)
  • Dusk
  • Envoy
  • Horizon
  • Jetstream
  • Passport
  • Sanctum
  • Scout
  • Socialite
  • Telescope

The following list below shows the official packages of Laravel 7:

  • Cashier (Stripe)
  • Cashier (Paddle)
  • Cashier (Mollie)
  • Dusk
  • Envoy
  • Horizon
  • Passport
  • Sanctum
  • Scout
  • Socialite
  • Telescope

Q #40) What is Laravel Forge?

Answer: It is a server management tool for PHP applications. It is a great alternative if you are not planning to manage your own servers.

Q #41) What is Laravel Vapor?

Answer: It is a completely serverless deployment platform. It is powered by Amazon Web Services (AWS).