В двух словах CRUD – это аббревиатура, широко известная в мире компьютерного программирования, которая используется для обозначения основных операций, известных как Создание, Чтение, Обновить и Удалить. На протяжении всей вашей жизни как разработчика вы будете часто иметь дело с моделями, выполняющими эти функции.

Часто почти 100%, как правило, контроллеры будут взаимодействовать с моделями, например, в системе электронной коммерции, где пользователь должен иметь возможность видеть список продуктов, о которых мы знаем, что есть точка входа/маршрут для продуктов, которые будут вызывать ProductController. , в свою очередь будет взаимодействовать с ProductModel, который под капотом выполнит запрос к вашей системной базе данных, обычно что-то вроде SELECT * FROM products, это может быть R as Read.

Прежде всего, обязательно импортируйте модель продукта, используя App\Models\Product

<?php

namespace App\Http\Controllers;

use App\Models\Product;
use Illuminate\Http\Request;

class ProductController extends Controller
{

C как создать

Итак, давайте приступим к реализации функциональности, которая позволит пользователю создавать новый продукт в базе данных:

/**
 * Store a newly created resource in storage.
*/
public function store(Request $request)
{
    $product = new Product();
    $product->name = $request->input('name');
    $product->description = $request->input('description');
    $product->price = $request->input('price');
    $product->save();

    return response()->json([
        'success'   =>  true,
        'data'      =>  $product,
    ]);
}

R как чтение

Как только у нас уже есть вставленный продукт в базу данных, пришло время получить / прочитать его для списка элементов.

/**
* Display a listing of the resource.
*/
public function index()
{
  $products = Product::all();
  return response()->json([
      "success"   =>  true,
      "data"      =>  $products,
  ]);
}

И для отдельного элемента по id:

/**
* Display the specified resource.
*/
public function show(int $id)
{
  $product = Product::find($id);

  return response()->json([
      'success'   =>  true,
      'data'      =>  $product,
  ]);
}

U как обновление

Теперь функция обновления, которая обновит текущий существующий элемент:

/**
* Update the specified resource in storage.
*/
public function update(Request $request, int $id)
{
  $product = Product::find($id);
  $product->name = $request->input('name');
  $product->description = $request->input('description');
  $product->price = $request->input('price');
  $product->save();

  return response()->json([
      'success'   =>  true,
      'data'      =>  $product,
  ]);
}

D как Удалить

И, наконец, удаление, которое должно удалить элемент на основе идентификатора:

/**
* Remove the specified resource from storage.
*/
public function destroy(int $id)
{
  Product::destroy($id);
}

Как правило, это основные и первоначальные операции, которые будут вашим спутником на всю жизнь как разработчику, и, конечно же, по мере того, как ваше приложение увеличивается и усложняется, эти функции, вероятно, будут увеличиваться и становиться более сложными.

Как вы знаете, вы можете найти текущие обновления в репозитории Github.