Метод controller
Метод controller применяется к объекту маршрута
и позволяет указать контроллер и метод, которые будут
обрабатывать запросы по данному маршруту. Первым параметром
передаётся имя класса контроллера, вторым - метод контроллера
в виде строки. Также можно передать массив с классом контроллера
и методом. Метод возвращает тот же объект маршрута для
цепочки вызовов.
Синтаксис
<?php
use Illuminate\Support\Facades\Route;
Route::controller($controllerClass);
Route::get($uri, [$controllerClass, $methodName]);
?>
Пример
Давайте свяжем маршрут с контроллером UserController
и методом index:
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\UserController;
Route::get('/users', [UserController::class, 'index']);
?>
Результат выполнения кода:
"Route bound to UserController@index"
Пример
Давайте используем метод controller для групповой
привязки всех маршрутов к одному контроллеру:
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\ArticleController;
Route::controller(ArticleController::class)->group(function () {
Route::get('/articles', 'index');
Route::get('/articles/{id}', 'show');
Route::post('/articles', 'store');
});
?>
Результат выполнения кода:
"All routes bound to ArticleController"
Пример
Давайте свяжем маршрут с методом контроллера через строковый синтаксис:
<?php
use Illuminate\Support\Facades\Route;
Route::get('/profile', 'ProfileController@show');
?>
Результат выполнения кода:
"Route bound to ProfileController@show"
Пример
Давайте создадим контроллер с одним методом и свяжем его с маршрутом:
<?php
namespace App\Http\Controllers;
class ProductController extends Controller
{
public function list()
{
$res = ['product 1', 'product 2', 'product 3'];
return $res;
}
}
?>
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\ProductController;
Route::get('/products', [ProductController::class, 'list']);
?>
Результат выполнения кода:
["product 1", "product 2", "product 3"]
Смотрите также
-
метод
get,
который создаёт маршрут для GET-запросов -
метод
post,
который создаёт маршрут для POST-запросов -
метод
group,
который группирует маршруты с общими атрибутами -
метод
middleware,
который назначает посредников для маршрута