Урок 2. Введение в роутинг Laravel
На прошлом уроке из серии уроков по Laravel мы все поставили, затем разобрались с ошибками базы данных, теперь попробуем что-то показать пользователю. А сегодня поговорим о машрутизации. Простыми словами маршрутизация или роутинг – это когда пользователь заходит на адрес в браузере, а там в зависимости от этого самого адреса что-то показывается. Самые простые маршруты Laravel принимают URI и замыкания, обеспечивая очень простой метод определения маршрутов и поведения без сложных конфигурационных файлов маршрутизации:
use Illuminate\Support\Facades\Route; Route::get('/greeting', function () { return 'Hello World'; });Файлы роутинга по умолчанию
Все маршруты Laravel определяются в файлах маршрутов, которые находятся в каталоге routes. Эти файлы автоматически загружаются приложением App\Providers\RouteServiceProvider вашего приложения. В routes/web.php файл определяет маршруты, которые предназначены для вашего веб-интерфейса. Эти маршруты назначаются группе web middleware, которая предоставляет такие функции, как состояние сеанса и защита CSRF. Маршруты в routes/api.php являются апатридами и назначаются группе промежуточного программного обеспечения api.
Изучение лучше начать с определения маршрутов в вашем routes/web.php файле. Маршруты, определенные в routes/web.php доступ к нему можно получить, введя URL-адрес определенного маршрута в вашем браузере.
Например, можно сделать так, добавив в routes/web.php
Route::get('/upread', function () { echo "ага!"; });По адресу http://localhost/new_project/public/upread выведется «ага». Можно добавить вьюшку в \resources\views создать файл upread.blade.php с содержимым:
<!DOCTYPE html> <html lang="{{ str_replace('_', '-', app()->getLocale()) }}"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Laravel</title> </head> <body> Hello, {{ $name }} </body> </html>А routes/web.php изменить так:
Route::get('/upread', function () { return view('upread', ['name' => 'Yuriy']); });Тогда будет так:
Маршруты, определенные в routes/api.php файле, вложены в группу маршрутов с помощью RouteServiceProvider. В этой группе префикс URI/api применяется автоматически, поэтому вам не нужно вручную применять его к каждому маршруту в файле. Вы можете изменить префикс и другие параметры группы маршрутов, изменив свой класс RouteServiceProvider.
Доступные методы маршрутизатора
Маршрутизатор позволяет регистрировать маршруты, которые отвечают на любой метод 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-действий. Вы можете сделать это с помощью метода совпадения. Или вы даже можете зарегистрировать маршрут, который отвечает на все запросы с помощью метода any:
Route::match(['get', 'post'], '/', function () { // }); Route::any('/', function () { // });Генерация URL-адресов
После присвоения имени данному направлению, вы можете использовать имя маршрута при генерации URL-адреса или переадресации по маршруту фреймворк Laravel и перенаправить вспомогательные функции:
// Генерация URL-Адресов... $url = route('profile'); // Создание редиректов... return redirect()->route('profile');Если именованный маршрут определяет параметры, вы можете передать эти параметры в качестве второго аргумента функции маршрута. Заданные параметры будут автоматически вставлены в сгенерированный URL-адрес в правильных позициях:
Route::get('/user/{id}/profile', function ($id) { // })->name('profile'); $url = route('profile', ['id' => 7]);Если вы передадите дополнительные параметры в массив, эти пары ключ / значение будут автоматически добавлены в строку запроса сгенерированного URL-адреса:
Route::get('/user/{id}/profile', function ($id) { // })->name('profile'); $url = route('profile', ['id' => 7, 'photos' => 'yes']); // /user/1/profile?photos=yesТам много еще, можете в документации почитать, сегодня была цель просто познакомить вас с основами. А на следующем уроке мы же перейдем к другому – формам.
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.