вопросы пишите мне в телеграмм +375298176892
можно скачать офлайн версию сайта: code.mu old.code.mu

Настройка маршрутов в Laravel

Начнем изучение фреймворка Laravel с настройки маршрутов (их еще называют роутами). Маршруты указывают фреймворку, что показывать при обращении к определенному URI в браузере.

Маршруты настраиваются в файле web.php, расположенном в папке routes. Изначально там уже есть вот такой маршрут:

<?php Route::get('/', function () { return view('welcome'); }); ?>

Как вы видите, маршрут представляет собой статический метод get класса Route.

Первым параметром метод get принимает URI, а вторым параметром - анонимную функцию, которая выполнится при обращению пользователя к данному URI в адресной строке браузера.

То, что вернет эта анонимная функция через return и покажется в окне браузера. Сейчас наша функция возвращает результат работы функции view. Пока не будем разбираться, что делает эта функция view, а поправим наш маршрут на следующее:

<?php Route::get('/', function () { return '!!!'; }); ?>

Как вы видите, теперь при обращении к URI '/' (то есть к главной странице сайта), на экран выведется строка '!!!'.

В файле web.php можно писать любое количество маршрутов, указывая соответствующие адреса, например, так:

<?php Route::get('/', function () { return 'главная страница сайта'; }); Route::get('/posts/', function () { return 'список постов'; }); Route::get('/post/1/', function () { return 'один пост'; }); ?>

Сделайте так, чтобы при обращении на адрес /test/ в браузер выводилось сообщение '!'.

Сделайте так, чтобы при обращении на адрес /dir/test/ в браузер выводилось сообщение '!!'.

Обязательные параметры

По следующей ссылке изучите раздел Обязательные параметры. Решите затем следующие задачи:

Пусть дан адрес вида /user/:id/, где вместо :id может быть любое число. Сделайте так, чтобы при обращении на адрес такого вида в браузер выводилось содержимое переданного параметра.

Пусть дан адрес вида /user/:name/, где вместо :name может быть любая строка. Сделайте так, чтобы при обращении на адрес такого вида в браузер выводилась строка 'имя юзера :name', где вместо :name будет переданная строка.

Пусть дан адрес вида /sum/:num1/:num2/, где вместо :num1 и :num2 могут быть любые числа. Сделайте так, чтобы при обращении на адрес такого вида в браузер выводилось сумма переданных чисел.

Пусть дан адрес вида /user/show-:id/, где вместо :id может быть любое число. Сделайте так, чтобы при обращении на адрес такого вида в браузер выводилось содержимое переданного параметра.

Необязательные параметры

По следующей ссылке изучите раздел Необязательные параметры. Решите затем следующие задачи:

Пусть дан адрес вида /user/:id/, где вместо :id может быть любое число. Сделайте так, чтобы параметр id был не обязательный и, если он не передан, вместо него будет передаваться 0.

Регулярные выражения

По следующей ссылке изучите раздел Ограничения регулярными выражениями. Решите затем следующие задачи:

Сделайте маршрут вида /user/:id/, где вместо :id должно быть число. Добавьте проверку параметра регулярным выражением.

Сделайте маршрут вида /user/:id/:name, где вместо :id должно быть число, а вместо :name - строка, состоящая из маленьких латинских букв количеством более 2-х. Добавьте проверку параметров регулярными выражениями.

Сделайте маршрут вида /articles/:date/, где вместо :date должна быть дата в формате год-месяц-день. Добавьте проверку параметра регулярным выражением.

Сделайте маршрут вида /users/:order/, где вместо :order должно быть одно из значений: 'name', 'surname' или 'age'. Добавьте проверку параметра регулярным выражением.

Сделайте маршрут вида /:year/:month/:day/, где вместо :year должен быть год, вместо :month - месяц, вместо :day - день. Выведите на экран день недели, соответствующий этой дате. Добавьте проверку параметров регулярными выражениями.