Что такое CRUD?
CRUD — это добавление (created), чтение (read), обновление (update) и удаление (delete), т.е. четыре базовые функции при работе с базами данных.
Добавление данных мы рассмотрели в предыдущем посте, где рассматривали работу контроллеров.
Давайте рассмотрим чтение данных из базы данных.
Открываем TaskController.php и создадим в функцию ReadTask:
public function ReadTask()
{
$tasks = Task::all(); //получаем все данные из модели Task
return view('task', compact('tasks')); //передаём данные в blade-шаблон task
}
Теперь давайте создадим таблицу в нашем blade-шаблоне task.blade.php :
@extends('layouts.app')
{{--Пишем папку и название файла, в который поместим контент из @section--}}
@section('content')
{{--Так как мы в файле app.blade.php использовали @yield('content') - с названием content, то и section дожна называться так же--}}
Задание
{{--Начало формы--}}
{{--Конец формы--}}
{{--И в конце не забываем закрыть нашу секцию--}}
{{--Таблица задач--}}
Название задачи
Описание
Статус
@foreach ($tasks as $task)
{{ $task->name_task }}
{{ $task->desc }}
{{ $task->status }}
@endforeach
{{--Таблица задач--}}
@endsection
В web.php удаляем наш маршрут, путь у которого был ‘/’ и пишем путь:
Route::get('/',[TaskController::class,'ReadTask']);
Должно получиться так:

Запускаем наше приложение. Пишем в терминале команду «php artisan serve».
Вот что у нас получилось:

Теперь все созданные нами задачи будут выводиться в таблице.
Так мы ознакомились с двумя функциями добавления данных и чтения. Не будем останавливаться на достигнутом и создадим функции обновления данных и удаления. Открываем контроллер TaskController.php, создаём три функции — EditTask, UpdateTask и DeleteTask:
public function EditTask($id)
{
$task = Task::find($id);
return view('edit_task', compact('task'));
}
//EditTask функция передаёт данные в blade-шаблон edit_task.blade.php, который мы создадим позднее
public function UpdateTask(Request $request, $id)
{
DB::table('tasks')->where('id', $id)->update([
'name_task' => $request->input('name_task'),
'desc' => $request->input('desc'),
'status' => 'Action',
]);
return redirect(url('/'));
}
//UpdateTask функция перезаписывает данные и редиректит нас на url / (task.blade.php)-страницу добавления задач
public function DeleteTask($id)
{
Task::find($id)->delete();
return redirect()->back();
}
//DeleteTask функция удаления задачи
Для обновления данных создадим blade-шаблон edit_task.blade.php:
@extends('layouts.app')
@section('content')
Задание
{{--Начало формы для обновления (изменения) данных--}}
{{--Конец формы--}}
@endsection
Открываем web.php и создаём маршруты к нашим новым функциям:
Route::get('edit/{id}',[TaskController::class,'EditTask'])->name('edit_task'); // маршрут для страницы редактирования задачи
Route::post('upload/{id}',[TaskController::class,'UpdateTask'])->name('upload_task'); // маршрут для обновления (изменения) данных
Route::delete('/delete/{id}',[TaskController::class,'DeleteTask'])->name('delete_task'); // маршрут для удаления задачи
Последний штрих. Открываем task.blade.php и передаём пути в наши кнопки Редактировать и Удалить (я покажу готовый код таблицы):
{{--Таблица задач--}}
Название задачи
Описание
Статус
Опции
@foreach ($tasks as $task)
{{ $task->name_task }}
{{ $task->desc }}
{{ $task->status }}
Редактировать
@endforeach
{{--Таблица задач--}}
Отлично! Мы славно поработали. Открываем терминал и пишем команду «php artisan optimize», открываем приложение в браузере http://127.0.0.1:8000 .
Теперь вы можете создавать новые задачи, удалять старые и перезаписывать задачи.
Вот в таком быстром режиме мы ознакомились с функциями CRUD.
В следующем посте познакомимся с Validations (проверками).