Контроллеры (Controllers) Laravel 5.*

Создание контроллера в Artisan

# php artisan make:controller MyPageController

Создать контроллер TestController и модель Test:

# php artisan make:controller TestController --model=Test

Пример контроллера и маршрута (route) показывающего профиль пользователя:

<?php

namespace App\Http\Controllers;

use App\User;
use App\Http\Controllers\Controller;

class UserController extends Controller
{
  /**
   * Показать профиль данного пользователя.
   *
   * @param  int  $id
   * @return Response
   */
  public function show($id)
  {
    return view('user.profile', ['user' => User::findOrFail($id)]);
  }
}
Route::get('user/{id}', 'UserController@show');
Контроллерам не обязательно наследовать базовый класс. Но тогда не будет таких удобных возможностей, как методы middleware(), validate() и dispatch().

 

Создать контроллер со стандартным набором обработки маршрутов (index, create, store, show, edit, update, destroy):

# php artisan make:controller PhotoController --resource

Создастся скрипт app/Http/Controllers/PhotoController.php с содержимым:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class PhotoController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        //
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        //
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        //
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        //
    }
}

Добавить маршруты в routes/web.php к контроллеру:

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

Действия, обрабатываемые контроллером ресурсов

Тип URI Действие Имя маршрута
GET /photos index photo.index
GET /photos/create create photo.create
POST /photos store photo.store
GET /photos/{photo} show photo.show
GET /photos/{photo}/edit edit photo.edit
PUT/PATCH /photos/{photo} update photo.update
DELETE /photos/{photo} destroy photo.destroy