除了store函数中的数据不去db

The data that except in the store function does not go to the db

我正在学习 laravel。 我必须做一个简单的存储功能来创建一个新的 post。表单似乎可以正常工作,但数据未到达数据库。

这是我的商店功能:

public函数存储(请求$request)

{
    $request->validate($this->validationRules);
    $formData = $request->all();

    $puzzle = new Puzzle();
    $puzzle->fill($formData);
    $puzzle->save();
    // $newPuzzle = Puzzle::create($formData);
    // return redirect()->route('puzzles.show', $newPuzzle->id);
}

我的模特:

class 拼图扩展模型

{

public $timestamps = false;
protected $fillable = [
    'title',
    'pieces',
    'image',
    'description',
    'brand',
    'price',
    'available',
    'quantity',
];

} 我的表格:

<form method="POST" action="{{route('puzzles.store')}}">
            @csrf
            <div class="mb-3">
              <label for="title" class="form-label">Title</label>
              <input type="text" class="form-control" id="title" name="title" value="{{ old('title') }}">
            </div>

            <div class="mb-3">
                <label for="pieces" class="form-label">Pieces</label>
                <input type="number" class="form-control" id="pieces" name="pieces" value="{{ old('pieces')}}">
            </div>

            <div class="mb-3">
              <label for="description" class="form-label">Description</label>
              <input type="text" class="form-control" id="description" name="description" value="{{ old('description')}}">
            </div>

            <div class="mb-3 form-check">
                <label class="form-check-label" for="available">Available</label>
                <input type="checkbox" class="form-check-input" id="available" name="available" checked>
            </div>

            <div class="col-md-4">
                <label for="quantity" class="form-label">Quantity</label>
                <input type="number" min="1" step="any" class="form-control" id="quantity" name="quantity">
            </div>

            <div class="col-md-4">
                <label for="price" class="form-label">Price</label>
                <input type="number" min="3.0" step="0.1" class="form-control" id="price" name="price">
            </div>
            <button type="submit" class="btn btn-primary">Submit</button>
        </form>

我做错了什么? 谢谢

根据以下内容更改您的商店功能

public function store(Request $request)
{
    $validated = $request->validate([
       'title' => 'min:5|max:250',
       'pieces' => 'numeric',
       'description' => 'min:5|max:500',
       'price' => 'numeric',
       'available' => 'boolean',
       'quantity' => 'numeric',
    ]);
    
    $puzzle = Puzzle::create($request->only(
        'title', 'pieces', 'description', 'available', 'quantity', 'price'
    ));
    
    return redirect()->route('puzzles.show', $puzzle->id);
}

.env

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_databse_name
DB_USERNAME=your_databse_user_name
DB_PASSWORD=your_databse_password