Лучший способ создания контроллера Laravel для операций CRUD
Laravel работает с архитектурным шаблоном MVC (модель-представление-контроллер). Если вы запускаете приложение на платформе Laravel, вам необходимо создать модель, представление и контроллеры для своего приложения.
В Laravel можно создать контроллер и модель через интерфейс командной строки. Laravel artisan – это интерфейс командной строки, который предоставляет ряд команд, которые помогают нам в создании приложения. Мы можем и должны создать Контроллер с помощью команды artisan.
Создайте контроллер Laravel
Допустим, вы работаете с серверной частью и хотите выполнять операции CRUD на страницах. Это означает, что вам необходимо создать систему для управления страницами, которая включает создание, получение, обновление и удаление страниц. Конечно, для этой задачи нужно создать контроллер.
Обычно команду запускают люди php artisan make:controller PageController
. Эта команда создает файл в каталоге PageController.php
app / Http / Controllers.
Примечание: вам необходимо запустить эту команду в корневом каталоге проекта с помощью интерфейса командной строки.
PageController.php
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
class PageController extends Controller
{
//
}
В этом сгенерированном контроллере вам необходимо написать методы и соответствующим образом определить маршруты. Для каждого метода нужно написать отдельный маршрут.
Например. давайте добавим один метод index()
и определим для него маршрут.
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
class PageController extends Controller
{
public function index() {
//do operations here
}
}
Чтобы вызвать эту index()
функцию в файле маршрута, мы должны добавить приведенный ниже код.
маршруты / web.php
Route::get('pages', 'PageController@index');
Тот же процесс будет применяться для каждого дополнительного метода.
В этом потоке нет ничего плохого. Но это не рекомендуемый способ. Популярность Laravel объясняется несколькими причинами. Одна из причин – их мощные передовые команды ремесленников.
Лучший способ создания контроллера Laravel
В Laravel нам не нужно писать каждый метод и определять отдельный маршрут для каждого метода. Используя команду artisan, мы можем сгенерировать контроллер с предопределенными методами. И просто написав единственный маршрут, Laravel автоматически вызывает соответствующие методы.
Сказав это, откройте интерфейс командной строки в корневом каталоге вашего проекта и выполните следующую команду. Обратите внимание, на этот раз мы добавляем –resource в нашу команду make: controller.
php artisan make:controller PageController --resource
Теперь сгенерированный PageController.php
файл выглядит так, как показано ниже.
PageController.php
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
class PageController extends Controller
{
/**
* Display a listing of the resource.
*
* @return IlluminateHttpResponse
*/
public function index()
{
//
}
/**
* Show the form for creating a new resource.
*
* @return IlluminateHttpResponse
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*
* @param IlluminateHttpRequest $request
* @return IlluminateHttpResponse
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*
* @param int $id
* @return IlluminateHttpResponse
*/
public function show($id)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return IlluminateHttpResponse
*/
public function edit($id)
{
//
}
/**
* Update the specified resource in storage.
*
* @param IlluminateHttpRequest $request
* @param int $id
* @return IlluminateHttpResponse
*/
public function update(Request $request, $id)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return IlluminateHttpResponse
*/
public function destroy($id)
{
//
}
}
У нас есть такие методы, как index, create, store, show, edit, update, destroy автоматически. Вы можете прочитать комментарии к каждому методу, в которых объясняется, что делает каждый метод. Теперь укажем для него маршрут.
маршруты / web.php
Route::resource('pages', 'PageController');
Этот находчивый маршрут создаст несколько маршрутов для обработки различных действий. Теперь, чтобы получить подробную информацию о действиях, запустите команду php artisan route:list
. Для маршрута страниц вы увидите результат, как показано на снимке экрана.
Этот вывод дает вам представление о методе HTTP, URL-адресе и том, какой метод будет вызывать указанный URL-адрес.
Например, если вы используете URL-адрес YOUR_SITE_DOMAIN / pages с методом GET, он вызовет index()
метод PageController.
Если вы хотите создать новую страницу, URL-адрес будет YOUR_SITE_DOMAIN / pages / create. Он вызывает create()
метод, в котором вам нужно загрузить представление для создания новой страницы.
Когда вы отправляете форму с помощью method = “post” и action = “pages”, она вызывает store()
метод.
И так далее.
Все дело в создании контроллера Laravel для операций CRUD. Пожалуйста, поделитесь своими мыслями в разделе комментариев ниже.
Статьи по Теме
- Как выполнить заполнение базы данных в Laravel
- Система входа в социальную сеть с использованием Laravel Socialite