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

Маршрутизация

Вывести список маршрутов на экран:

php artisan route:list
Обновить маршрутизатор и кэш можно одной командой
php artisan optimize

Маршрут для запросов get с параметром выглядит так:

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

Символ ? делает значение параметра не обязательным.

Route::get('/user/{name?}', function (string $name = 'John') {
    return $name;
});

Фильтры маршрутов

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

Именные маршруты:

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

Подключение middleware к маршрутам осуществляется внутри group:

Route::middleware(['auth:sanctum','admin'])->group(function () {
    Route::post('logout', [Controllers\AuthController::class, 'logout']);
    Route::get('profile', [Controllers\AuthController::class, 'profile']);
});

Group также можно использовать для группировки маршрутов одного контроллера

Подключение namespace контроллеров в файл маршрутизатора:

use App\Http\Controllers;

Тогда при подлкючении контроллера можно воспользоваться относительным путём:

Route::controller(Controllers\OrderController::class)->group(function () {
    Route::get('/orders/{id}', 'show');
    Route::post('/orders', 'store');
});

Количество комментариев: 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>