Данный пост непосредственно связан с предыдущими постами в этой рубрике. Здесь мы рассмотрим пример добавления полей, переданных посредством HTTP-запроса в базу данных.
Для добавления в базу данных мы будем использовать объект модели базы данных. Модели, согласно концепции MVC, в Laravel выполняют функцию промежуточного звена между базой данных и контроллером. Ранее на нашем сайте уже был пост про создания новой модели.
Теперь собственно к коду контроллера, который находится по пути:
\app\Http\Controllers\ContactController.php
Код контроллера оформлен классическим образом, в начале файла используя оператор use мы подключаем нужные классы. Среди этих классов – модель App\Models\Contact, о создании которой говорилось в предыдущем посту. Далее идёт непосредственно сам класс контроллера ContactController. В этом классе есть метод submit(), которому собственно и передаются поля из запроса.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests\ContactRequest;
use App\Models\Contact;
class ContactController extends Controller
{
    //
    public function submit(ContactRequest $req){
        
        // add to base
        $contact = new Contact();
        $contact->person_name = $req->input('person-name');
        $contact->person_email = $req->input('email');
        $contact->message = $req->input('message');
        $contact->save();
        // redirect to home
        return redirect()->route('home');
    }
}
?>
Внутри метода submit() создаётся объект класса – модели Contact, посредством которого будут добавляться данные в базу. Обращение к полям происходит в стиле ORM. После того, как поля были установлены, сохранение происходит посредством метода save(). Далее следует перенаправление на главную страницу, строка:
return redirect()->route('home');
Если нам нужно отобразить какое-либо сообщение об успешном добавлении, мы можем выполнить перенаправление немного иначе.
return redirect()->route('home')->with('success', 'Сообщение было добавлено!');
Тут мы добавили сообщение в сессию, соответственно в шаблоне главной страницы следует сделать вывод данного сообщения из сессии.
@if(session('success'))
	<div class="aler alert-success">
		{{ session('success') }}
	</div>
@endif
Таким образом, отправив данные на форме, поля будут записаны в БД, затем будет редирект на главную страницу, где мы увидим сообщение об успешном добавлении записи.