Введение в Laravel Route Controller

Эти контроллеры позволяют вам создавать классы контроллеров, используя методы, которые используются для обработки различных запросов. Было бы намного проще, если бы мы поняли концепцию контроллера маршрутов laravel с помощью примера. Мы пойдем шаг за шагом, чтобы получить хорошее представление о контроллерах маршрутизации. Итак, здесь мы идем с шагами:

Как создать Laravel Route Controller?

Вот некоторые из шагов для создания контроллеров маршрутизации Laravel, которые объяснены ниже:

Шаг 1: Самым первым шагом будет создание контроллера. Если вы не знакомы с созданием контроллера, то пройдите описанные ниже пункты по созданию контроллера, в противном случае перейдите непосредственно к шагу 2 для контроллеров маршрутизации.

  • Используйте нижеприведенную команду для создания контроллера.

Код:

Php artisan make: Controller MyController

  • Будет создан файл MyController.php, код по умолчанию которого указан ниже.

Код:

<_?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
class MyController extends Controller
(
public function show($id)
(
//
)
)

Шаг 2: Теперь вам нужно написать этот маршрут ниже в файле web.php.

Код:

Route::get('/post', ' ');

Здесь первый параметр - это URL, к которому вы хотите получить доступ, а MyController - это, очевидно, имя нашего контроллера. 'Show', как вы можете видеть в файле MyController.php, является методом. Таким образом, @show здесь указывает, что метод show () будет вызван, когда мы нажмем на URL «/ post».

Шаг 3: Теперь вы можете добавить строки кодирования, как показано ниже.

Код:

<_?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
class MyController extends Controller
(
/**
*Display resource
*
*/
public function show($id)
(
//
)
/**
*Display resource listing
*
*/
public function index()
(
//
)
/**
*Editing resource
*
*/
public function edit($id)
(
//
)
)

Шаг 4: Теперь пришло время нажать на URL. Вы получите указанный результат после ввода URL. Надеемся, что мы рассмотрели достаточно информации о контроллерах, чтобы вы могли получить доступ к своему контроллеру сейчас. Давайте теперь перейдем к тому, как мы также можем передавать данные в наш класс контроллера. Опять же, было бы намного проще, если бы мы научились передавать данные через параметры нашему контроллеру с помощью примера.

Передача данных в контроллер

1. Запишите следующий маршрут в файл web.php:

Код:

Route::get('/post/(id)', ' ');

Единственное отличие в определении этого маршрута состоит в том, что эта строка кода также содержит параметр «id» с URL-адресом.

2. Измените файл «MyController.php», как показано ниже.

Код:

public function show($id)
(
return “ID is :”.$id;
)

Здесь единственное отличие метода show () состоит в том, что мы изменили его, передав параметр id в метод show ().

3. Опять же, давайте перейдем по URL в нашем браузере. Вы будете получать вывод в зависимости от параметра.

Пространства имен

Вот часть информации о пространствах имен:

При определении метода Route :: get () для нашего класса контроллера нет необходимости упоминать полное пространство имен для контроллера, поскольку RouteServiceProvider загружает почти все ваши файлы маршрутов в группе маршрутов, в которой есть пространство имен. Вам просто нужно указать ту часть имени, которая будет идти после App / Http / Controllers.

Например, если полный путь класса контроллера - App / Http / Controllers / User / UsersController, то нет необходимости упоминать полное пространство имен. Вы можете просто определить маршрут следующим образом:

Код:

Route::get('\user', 'User\ ');

Контроллер одиночного действия

Если вы хотите определить контроллер одиночного действия, вы сможете сделать это, поместив единственный метод __invoke на ваш контроллер. Говорят, что в PHP есть несколько удивительно волшебных функций, а функция __invoke позволяет ему попасть в этот волшебный список. С помощью этой волшебной функции '__invoke' вы можете определить класс, используя в нем только одну PHP-функцию '__invoke', и в любой момент, когда объект будет вызван, он, в свою очередь, будет напрямую вызывать метод '__invoke', даже не выполняя вручную называется $ obj-> randomFunction ().

Теперь возникает вопрос, где вы можете его использовать? Справедливо, наша психология задает этот вопрос каждый раз, когда мы сталкиваемся с какой-либо новой функциональностью В качестве примера, это можно использовать при реализации SRP (принцип единой ответственности). Как мы сделали выше, используя контроллер artisan, аналогично php artisan: make controller MyController, кодирование файла MyController будет выглядеть так, как показано ниже:

Код:

<_?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
class MyController extends Controller
(
//
)

Мы можем добавить строки кода для метода __invoke () в классе MyController. Вот пример того, как будет выглядеть класс после добавления кода.

Код:

<_?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
class MyController extends Controller
(
public function __invoke($id)
(
return “ID is :”.$id;
)
)

Теперь файл web.php необходимо изменить, так как он несет полную ответственность за всю обработку действий. Строка кода будет выглядеть примерно так:

Код:

Route::get('/post/(id)', 'MyController');

Эта строка кода попадет в функцию '__invoke ()' нашего класса MyController. Отсюда можно сделать вывод, что вам необязательно писать функцию @invoke для доступа к контроллерам с одним действием.

Примечание. Если вы не укажете какое-либо действие, т. Е. Не напишите метод __invoke (), он выдаст ошибку действия недопустимого маршрута, т. Е. UnexpectedValueExpression.

Взгляд на создание маршрутов Laravel

Каждый маршрут в Laravel определяется в файлах маршрутов. Эти файлы маршрутов можно найти в подкаталоге маршрутов. Нет необходимости вручную загружать эти файлы, поскольку они автоматически загружаются фреймворком Laravel. Файл маршрута вашего приложения хранится в файле app / Http / rout.php. Общая маршрутизация для любого запроса в Laravel выглядит так:

Код:

Route::get ('/', anyFunction() (
return 'This is Index';
));

Код:

Route::post ('user/dashboard', anyFunction() (
return 'This is Dashboard';
));

Механизм маршрутизации

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

  • Во-первых, создайте корневой URL и запустите его.
  • Убедитесь, что ваш URL совпадает с методами в файле root.php, только тогда будут выполнены все связанные функции.
  • Функция сначала вызывает файлы шаблона, а затем вызывается функция view () с именем файла в resources / views /.

Вывод

Надеемся, что до сих пор мы изучили достаточное количество концепций Laravel Route Controller, которые позволят вам создать свой собственный контроллер маршрутизации Laravel для вашего приложения, который будет одновременно безопасным и мощным.

Рекомендуемые статьи

Это руководство по Laravel Route Controller. Здесь мы обсуждаем передачу данных в контроллер, пространства имен, контроллер одиночного действия и различные шаги для создания Laravel. Вы также можете просмотреть наши другие предлагаемые статьи, чтобы узнать больше -

  1. Что такое Ларавел?
  2. Laravel против Ruby on Rails
  3. Laravel vs Codeigniter
  4. Команды Laravel