MyTetra Share
Делитесь знаниями!
Роутинг в Laravel - краткая памятка
22.03.2019
16:36
Автор: xintrea
Текстовые метки: laravel 5, php, роутинг, route, get
Раздел: Компьютер - Программирование - Язык PHP - Laravel

Настройка роутинга производится в файле:



/routes/web.php



В нем прописываются запросы, поступаемые на index.php, и определяется, какой объект системы должен подготавливать ответ.


Самым популярным запросом к web-приложению является запрос страницы сайта. Он традиционно делается через тип запроса GET. Ниже даны примеры, формирующие ответ на такой запрос.



Возврат строки


Запрос главной страницы сайта, например http://mysite, ответ прямо в виде строки:



Route::get('/', function() {

return "Hello!";

});



Возврат содержимого вида


Запрос страницы сайта http://mysite/about, в ответ передается содержимое вида с помощью безымянной функции (замыкания):



Route::get('about', function() {

return view('about');

});



Ответ в виде вида, которому передается какой-либо параметр или набор параметров:



Route::get('about', function() {

return view('about', [

'authorName' => 'Vasya'

]);

});



Тот же самый эффект можно получить, используя метод width() для вида. Синтаксис следующий:



Route::get('about', function() {

return view('about')->width('authorName', 'Vasya');

});



Еще можно воспользоваться функцией compact():



Route::get('about', function() {

$authorName='Vasya';

return view('about', compact('authorName');

});



Через функцию compact() можно передавать не только элементарные базовые типы, но и массивы (а возможно и объекты - проверить).



Возврат результата работы контроллера


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



Route::get('user', 'UserController@index');



где UserController - это имя контроллера, а index - имя метода в контроллере.



Параметры в запросе GET


Если в запросе GET передаются параметры, например вот так:



domain.com?p1=param1&p2=param2



то получить их можно следующим образом. По-умолчанию роут не реагирует на параметры после символа вопроса "?", так что маршрут определяется строкой до символа вопроса. А все параметры GET-запроса попадают в (метод) request.


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


  • Проверить есть ли значение, переданное через GET: request()->has('data')
  • Получить само значение можно так: request('data')



Так же в этом разделе:
 
MyTetra Share v.0.52
Яндекс индекс цитирования