Начало здесь

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

Для начала создадим в папке resources/views новое представление под названием tasks.blade.php

И добавим туда простой код:

@extends('layouts.app')  

@section('content')
<div style="text-align: center; margin-top:  3rem !important;"  >  
<h1 style=""  class=""> Добавление новой записи в базу </h1>
<form action="{{ url('tasks')}}" method="POST" >
  {{ csrf_field() }}
<input type="text" name="name" id="task-name"  value="{{ old('task') }}">
<button type="submit" >Добавить новую запись</button>
</form>
</div>
@endsection

Объяснение:

form action="{{ url('tasks')}}" method="POST" - это запрос методом к нашему маршруту

{{ csrf_field() }} - это токен CSRF-защиты. При определении каждой HTML-формы вы должны включать в неё скрытое поле CSRF-токена, чтобы посредник CSRF-защиты мог проверить запрос. Вы можете использовать хелпер csrf_field для генерирования поля токена.

@extends('layouts.app') - подключение шаблона, файл которого расположен в папке layouts под названием app.blade.php

Код этого шаблона может быть таким:

<!doctype html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <!-- CSRF Token -->
    <meta name="csrf-token" content="{{ csrf_token() }}">

    <title>{{ config('app.name', 'Laravel') }}</title>

</head>
<body>
    <div id="app">

            @yield('content')

    </div>
</body>
</html>

Страница с формой теперь должна выглядеть так:

Screenshot_1.jpg

Теперь в файле web.php необходимо прописать необходимые маршруты.

Маршрут для метода GET (для открытия страницы www.адрес_сайта/tasks)
Route::get('/tasks', function () {
        return view('tasks');
    });
Маршрут для метода POST (для добавления записи в базу данных)
Route::post('/tasks', function (Request $request) {

        $task = new App\Models\Task;
        $task->name = $request->name;
        $task->save();

        return redirect('/tasks');
    });

В этой части кода происходит обращение методом post к маршурут /tasks, к модели базы данных Task, которую мы создавали в предыдущей статье и которая физически находится в папке App\Models

$task = new App\Models\Task;

Потом мы назначаем свойству name модели $task значение переменной name из нашего запроса $request

$task->name = $request->name;

И после этого вызываем команду Сохранить запрос в базу данных:

$task->save();

После этого снова возвращаемся на исходную страницу

return redirect('/tasks');

Теперь если заполнить поле ввода и нажать кнопку сохранить, в нашей базе данных добавится новая запись.

В следующей статье мы прочитаем информацию из базы данных и выведем ее на страницу.

Продолжение здесь

Удаления записи из базы данных.

Для удаления записи из базы данных добавляем в файл web.php код

Route::delete('/tasks/{id}', function ($id) {
        App\Models\Task::findOrFail($id)->delete();

        return redirect('/tasks');
    });

А в файле представления добавляем кнопку для удаления возле каждой записи.

@foreach ($tasks as $task)
    <div>{{ $task->id }} - {{ $task->name }}     
    <form action="{{ url('tasks/'.$task->id) }}" method="POST">
    {{ csrf_field() }}
    {{ method_field('DELETE') }}
    <button type="submit" class="btn btn-danger">Удалить</button>
    </form></div>
    @endforeach

Здесь следует отметить, что форма не может содержать метод DELETE, поэтому мы добавляем его через {{ method_field('DELETE') }}

Редактирование записи в базе данных

Для редактрирования записи в базы данных добавляем в файл web.php код

Route::post('/tasks_edit/{id}', function (Request $request) {

        $task = new App\Models\Task;
        $task = App\Models\Task::find($request->id);
        $task->name = $request->name;
        $task->save();

        return redirect('/tasks');
    });

Здесь мы отправляем запрос методом POST по адресу /tasks_edit/{id}

Создаем новую модель

$task = new App\Models\Task;

Находим в таблице запись с id

$task = App\Models\Task::find($request->id);

Устанавливаем значение для ключа name и сохраняем запись

В файле представления нужно добавить такой код:

<form action="{{ url('tasks_edit/'.$task->id) }}" method="POST">
    {{ csrf_field() }}

    <input type="text" name="name" value="{{ $task->name }}">
    <button type="submit" class="btn btn-danger">Сохранить</button>
    </form>