Bird
Raised Fist0
Laravelframework~30 mins

Controller methods and actions in Laravel - Mini Project: Build & Apply

Choose your learning style10 modes available
Laravel Controller Methods and Actions
📖 Scenario: You are building a simple Laravel web application to manage a list of books. You want to create a controller that handles showing all books and showing details of a single book.
🎯 Goal: Create a Laravel controller named BookController with two methods: index to list all books and show to display details of a single book by its ID.
📋 What You'll Learn
Create a controller class named BookController
Add a public method index that returns a view named books.index
Add a public method show that accepts a parameter $id and returns a view named books.show passing the $id
Use the correct namespace and extend the base Controller class
💡 Why This Matters
🌍 Real World
Controllers in Laravel handle user requests and return responses, such as views or JSON data. This project shows how to set up basic controller methods for common web pages.
💼 Career
Understanding controller methods is essential for backend web development with Laravel. It is a core skill for building maintainable and organized web applications.
Progress0 / 4 steps
1
Create the BookController class
Create a PHP class named BookController inside the namespace App\Http\Controllers that extends the base Controller class.
Laravel
Hint

Remember to declare the namespace and extend the Controller class.

2
Add the index method
Inside the BookController class, add a public method named index that returns the view books.index using return view('books.index');.
Laravel
Hint

The index method should be public and return the view books.index.

3
Add the show method with parameter
Inside the BookController class, add a public method named show that accepts a parameter $id and returns the view books.show passing the $id as data using return view('books.show', ['id' => $id]);.
Laravel
Hint

The show method should accept $id and pass it to the view books.show.

4
Complete the controller with both methods
Ensure the BookController class contains both the index and show methods exactly as specified, with correct namespace and class declaration.
Laravel
Hint

Check that both methods are present and the class is correctly declared.

Practice

(1/5)
1. What is the main purpose of a controller method (action) in Laravel?
easy
A. To handle a specific user request and return a response
B. To define database schema
C. To style the HTML output
D. To manage server configuration

Solution

  1. Step 1: Understand controller role

    Controllers group related logic into methods called actions.
  2. Step 2: Identify action purpose

    Each action handles a user request and returns a response like a view or JSON.
  3. Final Answer:

    To handle a specific user request and return a response -> Option A
  4. Quick Check:

    Controller action = handle request and respond [OK]
Hint: Controllers handle requests and responses, not styling or config [OK]
Common Mistakes:
  • Confusing controller methods with database or styling tasks
  • Thinking controllers manage server settings
  • Assuming controllers only return views
2. Which of the following is the correct syntax to define a controller method named show in Laravel?
easy
A. function show() public { /* code */ }
B. public function show() { /* code */ }
C. public show function() { /* code */ }
D. def show() { /* code */ }

Solution

  1. Step 1: Recall PHP method syntax

    In PHP, methods are defined with visibility, function keyword, name, and parentheses.
  2. Step 2: Match Laravel controller method syntax

    Laravel uses PHP syntax: public function methodName() {}.
  3. Final Answer:

    public function show() { /* code */ } -> Option B
  4. Quick Check:

    PHP method = public function name() [OK]
Hint: Remember PHP method syntax: visibility + function + name() [OK]
Common Mistakes:
  • Placing visibility after function keyword
  • Using Python style def keyword
  • Omitting parentheses after method name
3. Given this controller method in Laravel:
public function greet($name) {
    return "Hello, " . $name . "!";
}

What will be the output if called with $controller->greet('Anna')?
medium
A. "Hello, Anna!"
B. "Hello, $name!"
C. Error: Undefined variable
D. "Hello, !"

Solution

  1. Step 1: Understand method parameter usage

    The method receives $name and concatenates it with strings.
  2. Step 2: Substitute argument value

    Calling with 'Anna' replaces $name with 'Anna', so output is "Hello, Anna!".
  3. Final Answer:

    "Hello, Anna!" -> Option A
  4. Quick Check:

    Parameter value used in string = "Hello, Anna!" [OK]
Hint: Replace parameter with argument value to find output [OK]
Common Mistakes:
  • Treating $name as literal string
  • Expecting error due to missing variable
  • Ignoring string concatenation
4. Identify the error in this Laravel controller method:
public function index()
{
    return view('welcome')
}
medium
A. View name should be capitalized
B. Incorrect method name
C. Missing semicolon after return statement
D. Missing parentheses in view() call

Solution

  1. Step 1: Check PHP syntax in method

    PHP statements must end with a semicolon; here it is missing after return view('welcome').
  2. Step 2: Validate other parts

    Method name and view call syntax are correct; view name case is not an error.
  3. Final Answer:

    Missing semicolon after return statement -> Option C
  4. Quick Check:

    PHP statements end with ; [OK]
Hint: Check for missing semicolons after return statements [OK]
Common Mistakes:
  • Ignoring missing semicolon causing syntax error
  • Thinking view names must be capitalized
  • Assuming parentheses are missing in view()
5. You want to create a Laravel controller method that returns a JSON response with a user's name and email. Which method correctly does this?
public function userInfo()
{
    $user = ['name' => 'John', 'email' => 'john@example.com'];
    // Fill in the return statement
}
hard
A. return json($user);
B. return json_response($user);
C. return response->json($user);
D. return response()->json($user);

Solution

  1. Step 1: Recall Laravel JSON response syntax

    Laravel uses response()->json() helper to return JSON responses.
  2. Step 2: Check each option's syntax

    return response()->json($user); correctly calls response()->json($user);. Others are invalid or incorrect syntax.
  3. Final Answer:

    return response()->json($user); -> Option D
  4. Quick Check:

    Use response()->json() for JSON output [OK]
Hint: Use response()->json() helper to return JSON [OK]
Common Mistakes:
  • Using undefined functions like json() or json_response()
  • Missing parentheses or arrow operator in response call
  • Confusing PHP syntax for method calls
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