В контроллерах мы будем строить логику проекта, говорить что нужно делать с приходящими данными, куда записывать данные и какие действия будут выполняться при взаимодействии с данным классом. Контроллеры по умолчанию хранятся в app/Http/Controllers.
Для создания контроллера нам понадобиться следующая команда: php artisan make:controller.
Создадим контроллер TaskController, далее — пропишем команду в терминале php artisan make:controller TaskController.

Сейчас мы поработаем с нашим контроллером.
Открываем файл и создаём public function, присвоим ей имя SaveTask, т.к. мы в данной функции будем принимать данные с формы, которую построили в task.blade.php шаблоне. Нам понадобиться наша модель Task, для того чтобы сказать функции в какую таблицу базы данных мы хотим записать полученные данные. В нашем случаем мы будем писать эти данные в таблицу tasks.
name_task = $request->input('name_task');
$new_task->desc = $request->input('desc');
$new_task->status = 'Action'; // задаём в ручную статус
$new_task->save();
return redirect()->back();
}
}
Класс Laravel Illuminate\Http\Request предоставляет объектно-ориентированный способ взаимодействия с текущим HTTP-запросом, обрабатываемым вашим приложением, а также для получения входных данных, файлов cookie и файлов, которые были отправлены с запросом.
Обратите внимание!
$new_task->name_task — название столбца в нашей таблице «tasks».

$request->input(‘name_task’) — навзание input тега из формы шаблона task.blade.php.

Отлично, теперь у нас есть функция, которая будет записывать приходящие данные. Нам осталось написать http маршрут к данной функции.
Сейчас мы скажем приложению, что форма в шаблоне task.blade.php будет запускать нашу функцию SaveTask.
Для этого откроем routes/web.php и в нём создадим post запрос.
name('save_task');
Теперь перейдём в шаблон task.blade.php и в form добавим action='{{route(‘save_task’)}}’.
Вот что должно получиться:
@extends('layouts.app')
{{--Пишем папку и название файла, в который поместим контент из @section--}}
@section('content')
{{--Так как мы в файле app.blade.php использовали @yield('content') - с названием content то и section дожна называться так же--}}
Задание
{{--Начало формы--}}
{{--Конец формы--}}
{{--И в конце не забываем закрыть нашу секцию--}}
@endsection
Хорошо, теперь открываем терминал, обновляем приложение php artisan optimize и запускаем сервер php artisan serve.
После запуска приложения открываем его в браузере.
Вводим любые данные в наши поля (Название задачи, Описание) и нажимаем кнопку Сохранить.

После нажатия кнопки Сохранить, форма обнулилась и данные успешно были отправлены в нашу таблицу tasks.

Вот полученный результат нашего контроллера и роута (маршрута).
В следующем посте мы научимся перезаписывать и удалять данные из базы данных.