Сохранение данных формы в БД в Laravel
Давайте сохраним данные формы в таблицу через модель Eloquent.
Пусть есть форма создания поста:
<form action="/post" method="POST">
@csrf
<input name="title">
<input name="slug">
<textarea name="text"></textarea>
<input type="submit">
</form>
Маршрут принимает POST:
<?php
Route::post('/post', [PostController::class, 'store']);
?>
В действии читаем данные из Request
и сохраняем через модель:
<?php
namespace App\Http\Controllers;
use App\Models\Post;
use Illuminate\Http\Request;
class PostController extends Controller
{
public function store(Request $request)
{
$post = new Post;
$post->title = $request->input('title');
$post->slug = $request->input('slug');
$post->text = $request->input('text');
$post->save();
return 'post saved';
}
}
?>
Можно короче через create.
Для этого в модели укажите
$fillable:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
protected $fillable = ['title', 'slug', 'text'];
}
?>
<?php
public function store(Request $request)
{
Post::create($request->only(['title', 'slug', 'text']));
return 'post saved';
}
?>
Сделайте форму добавления юзера и сохраните данные в таблицу через модель.
Сохраните юзера через create
и $fillable.