Dorokhov.codes

05. Controllers

Controllers are usually located inside the app/Http/Controllers folder.

They should be inherited from the App\Http\Controllers\Controller class.

Example of HomeController.php:

namespace app/Http/Controllers;

class HomeController extends Controller 
{
    pulic function index()
    {
        return 'Hello, world!';
    }
}

Parameters

namespace app/Http/Controllers;

class PostController extends Controller 
{
    pulic function view($id)
    {
        return "Post $id";
    }
}

Creating using artisan

php artisan make:controller HomeController
php artisan make:controller Admin\PostController

Resource controllers

Controller that has all necessary actions for CRUD operations:

  • index
  • create
  • store
  • show
  • edit
  • update
  • destroy
php artisan make:controller Admin\PostController --resource

Routes:

Route::resource('photos', 'PhotoController');

Render a view

Passing variables:

return view('welcome', [
    'name' => 'Andrew',
]);
return view('welcome')->with('name', 'Andrew');

Function view() looks for a view file in resources/views/, for example:

resources/views/welcome.blade.php

Response with JSON

public function test()
{
    return response()->json([
        'success' => true,
    ]);
}