Публикации - Laravel

HMVC в Laravel - Маршрутизация

Первое, с чем придется столкнуться разработчику в MVC-фрэймворках - это маршрутизация. Laravel - не исключение. Маршруты приложения в Laravel находится в файле /routes/web.php

Маршрутизация Laravel достаточна проста и не требует дополнительных настроек. Например, так выглядит прослушка маршрута /greeting, и которая выводит фразу Hello World

use Illuminate\Support\Facades\Route;

Route::get('/greeting', function () {
    return 'Hello World';
});

Однако, согласно концепции MVC, маршрут должен ссылаться на экшн контроллера. Вот так выглядит ссылка на экшн index контроллера UserController

use App\Http\Controllers\UserController
Route::get('/user', [UserController::class, 'index']);

Маршрутизатор позволяет регистрировать маршруты, отвечающие на любой HTTP-запрос:

Route::get($uri, $callback);
Route::post($uri, $callback);
Route::put($uri, $callback);
Route::patch($uri, $callback);
Route::delete($uri, $callback);
Route::options($uri, $callback);

Иногда возникает необходимость зарегистрировать маршрут, который прослушивает несколько HTTP-запросов. Вы можете сделать это, используя метод match. Или вы даже можете зарегистрировать маршрут, который отвечает на все HTTP-команды, используя метод any:

Route::match(['get', 'post'], '/', function () {
    //
});

Route::any('/', function () {
    //
});

К маршрутам можно добавлять переменные

Route::get('/user/{id}', function ($id) {
    return 'User '.$id;
});

Маршруты с регулярными выражениями:

Route::get('/user/{name}', function ($name) {
    //
})->where('name', '[A-Za-z]+');

Route::get('/user/{id}', function ($id) {
    //
})->where('id', '[0-9]+');

Route::get('/user/{id}/{name}', function ($id, $name) {
    //
})->where(['id' => '[0-9]+', 'name' => '[a-z]+']);

Для удобства в некоторых часто используемых шаблонах регулярных выражений есть вспомогательные методы, которые позволяют быстро добавлять ограничения шаблонов к маршрутам:

Route::get('/user/{id}/{name}', function ($id, $name) {
    //
})->whereNumber('id')->whereAlpha('name');

Route::get('/user/{name}', function ($name) {
    //
})->whereAlphaNumeric('name');

Route::get('/user/{id}', function ($id) {
    //
})->whereUuid('id');

Имеется возможность создавать именнованные маршруты

Route::get(
      '/user/profile',
      [UserProfileController::class, 'show']
    )->name('profile');

К таким маршрутам можно обратиться с помощью хелпера route:

@route('profile')

Для добавление промежуточного программного обеспечения можно создавать группы маршрутов:

Route::middleware(['first', 'second'])->group(function () {
    Route::get('/', function () {
        // Uses first & second middleware...
    });

    Route::get('/user/profile', function () {
        // Uses first & second middleware...
    });
});

Количество комментариев: 0

Для того, чтобы оставить коментарий необходимо зарегистрироваться


Изображения Видео

1. Подключение CKEditor https://artisansweb.net/install-use-ckeditor-laravel/#comments
2. Регистрация и авторизация https://know-online.com/post/laravel-reg
3. Что нового в Laravel 8 https://sergeymukhin.com/blog/chto-novogo-v-laravel-80
4. Авторизация Sanctum <iframe width="560" height="315" src="https://www.youtube.com/embed/MT-GJQIY3EU" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>