Bird
Raised Fist0
Laravelframework~20 mins

Accessing request data in Laravel - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Request Data Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ component_behavior
intermediate
2:00remaining
What is the output of this Laravel controller method?
Consider this Laravel controller method that handles a POST request with form data. What will be returned when the form sends a field named username with value alice?
Laravel
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller
{
    public function store(Request $request)
    {
        return $request->input('username', 'guest');
    }
}
A"alice"
B"guest"
Cnull
DAn error is thrown
Attempts:
2 left
💡 Hint
The input method returns the value of the given key or the default if not present.
📝 Syntax
intermediate
2:00remaining
Which option correctly retrieves a query parameter named 'page' from the request?
You want to get the 'page' parameter from the URL query string in a Laravel controller. Which code snippet is correct?
A$page = $request->param('page', 1);
B$page = $request->query('page', 1);
C$page = $request->get('page', 1);
D$page = $request->input('page', 1);
Attempts:
2 left
💡 Hint
Use the method designed specifically for query parameters.
🔧 Debug
advanced
2:00remaining
Why does this code cause an error when accessing JSON request data?
This Laravel controller method tries to get a JSON field 'email' from the request body. Why does it cause an error?
Laravel
<?php

public function update(Request $request)
{
    $email = $request->email;
    return $email;
}
AThe 'email' field is missing from the request body.
BThe method should use $request->json('email') instead.
CThe request must be cast to an array before accessing fields.
DThe request object does not have dynamic properties for JSON fields.
Attempts:
2 left
💡 Hint
Accessing request data requires specific methods, not property access.
❓ state_output
advanced
2:00remaining
What is the value of $data after this code runs?
Given this Laravel controller snippet, what will be the value of $data?
Laravel
<?php

public function handle(Request $request)
{
    $data = $request->only(['name', 'age']);
    return $data;
}
AAn array with all request fields
B{"name": "John"} if only 'name' is sent
C{"name": "John", "age": 30} if both fields are sent
Dnull
Attempts:
2 left
💡 Hint
The only method returns only specified keys if present.
🧠 Conceptual
expert
2:00remaining
Which method correctly retrieves all input data except the 'password' field?
You want to get all input data from a Laravel request except the 'password' field. Which method call achieves this?
A$request->except('password');
B$request->only('password');
C$request->input()->except('password');
D$request->all()->except('password');
Attempts:
2 left
💡 Hint
Use the method designed to exclude keys from input data.

Practice

(1/5)
1. In Laravel, which method is commonly used to retrieve input data from a request regardless of HTTP method?
easy
A. $request->data('key')
B. $request->post('key')
C. $request->all()
D. $request->input('key')

Solution

  1. Step 1: Understand Laravel request input methods

    The input() method retrieves input data from the request regardless of HTTP method (GET, POST, etc.).
  2. Step 2: Compare other methods

    post() only retrieves POST data, all() returns all input data, and data() does not exist.
  3. Final Answer:

    $request->input('key') -> Option D
  4. Quick Check:

    Use input() to get any request data [OK]
Hint: Use input() to get any request data easily [OK]
Common Mistakes:
  • Confusing input() with post() which only gets POST data
  • Using all() when only one key is needed
  • Trying to use data() which does not exist
2. Which of the following is the correct syntax to get a query parameter named 'page' from a Laravel request?
easy
A. $request->post('page')
B. $request->query('page')
C. $request->route('page')
D. $request->request('page')

Solution

  1. Step 1: Identify method for query parameters

    Laravel provides query() method to specifically get data from URL query parameters (GET data).
  2. Step 2: Check other options

    post() gets POST data, route() gets route parameters, request() is not a retrieval method.
  3. Final Answer:

    $request->query('page') -> Option B
  4. Quick Check:

    Use query() for URL parameters [OK]
Hint: Use query() to get URL parameters only [OK]
Common Mistakes:
  • Using post() to get query parameters
  • Using route() which is for route parameters
  • Using request('page') which does not exist
3. Given the following Laravel controller code, what will be the output if the request URL is /search?term=laravel and the form sends a POST field term=php?
public function search(Request $request) {
    return $request->input('term');
}
medium
A. null
B. laravel
C. php
D. term

Solution

  1. Step 1: Understand input() method behavior

    The input() method returns POST data first if available, then falls back to query parameters.
  2. Step 2: Analyze given request data

    The POST field term=php exists, so input('term') returns 'php' ignoring the query parameter.
  3. Final Answer:

    php -> Option C
  4. Quick Check:

    input() prefers POST over query [OK]
Hint: input() prefers POST data over query parameters [OK]
Common Mistakes:
  • Assuming query parameter overrides POST data
  • Expecting null if both exist
  • Confusing input() with query()
4. Identify the error in this Laravel code snippet that tries to get a POST field named 'email':
public function store(Request $request) {
    $email = $request->postEmail();
    return $email;
}
medium
A. Method postEmail() does not exist
B. Should use $request->input('email') instead
C. Missing validation before accessing email
D. Should use $request->query('email') for POST data

Solution

  1. Step 1: Check method existence

    Laravel's Request class does not have a method named postEmail(). This causes a runtime error.
  2. Step 2: Correct method usage

    To get POST data, use $request->post('email') or $request->input('email').
  3. Final Answer:

    Method postEmail() does not exist -> Option A
  4. Quick Check:

    Use post('key') or input('key'), not postEmail() [OK]
Hint: Use post('key') not postKey() method [OK]
Common Mistakes:
  • Calling non-existent methods like postEmail()
  • Confusing query() with post() for POST data
  • Ignoring validation but that is not the error here
5. You want to safely get a nested input value 'user.address.city' from a Laravel request and provide a default 'Unknown' if it does not exist. Which code snippet correctly does this?
hard
A. $city = $request->input('user.address.city', 'Unknown');
B. $city = $request->get('user')['address']['city'] ?? 'Unknown';
C. $city = $request->query('user.address.city') ?: 'Unknown';
D. $city = $request->input('user')['address']['city'] ?? 'Unknown';

Solution

  1. Step 1: Use dot notation with input()

    Laravel supports dot notation in input() to access nested data safely with a default value.
  2. Step 2: Analyze other options

    B uses valid get() but unsafe array access if 'user' missing, C uses query() which only reads URL params, D uses input('user') which may be null leading to array access error.
  3. Final Answer:

    $city = $request->input('user.address.city', 'Unknown'); -> Option A
  4. Quick Check:

    Use input('nested.key', default) for nested safe access [OK]
Hint: Use input('nested.key', default) for nested values [OK]
Common Mistakes:
  • Trying to access nested arrays without checking existence
  • Unsafe manual array access after get('user') or input('user')
  • Using query() which only reads URL parameters
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard