如何将表单数据提交到 MySQL 数据库

How to Submit Form Data into MySQL Database

我对 Laravel 和一般编码还比较陌生。我正在尝试使用 Eloquent 并将数据从我的表单传递到 MySQL 数据库中。我可以 "submit" 没有任何错误,但在 table 中看不到数据。我觉得我的代码越来越混乱,因为我正在尝试解决这个问题,我希望对我的代码进行审查。通过阅读教程、书籍和审查其他人的代码,我尝试了几种不同的方法来做到这一点。

路线

Route::post('submit', function (Request $request) {
    $data = $request->validate([
        'title' => 'required|max:255',
        'category' => 'required|max:255',
        'content' => 'required|max:900',
    ]);
    return redirect('submit');
});

控制器

<?php

public function store(Request $request)
{
    Post::create([
        'title' => $request->title,
        'category' => $request->category,
        'content' => $request->content,
    ]);

    return redirect('views.submit');
}

View/Blade

<div>
    <form action='' method='post'>
        @csrf
        <p><label>Title</label><br/>
            <input type='text' name='title' value=''><?php if (isset($error)) {
                echo $_POST['title'];
            }?></p>
        <p><label>Category</label><br/>
            <textarea name='category' cols='60' rows='10'><?php if (isset($error)) {
                    echo $_POST['category'];
                }?></textarea></p>
        <p><label>Content</label><br/>
            <textarea name='content' cols='60' rows='10'><?php if (isset($error)) {
                    echo $_POST['content'];
                }?></textarea></p>
        <p><input type='submit' name='submit' value='Submit'></p>
    </form>
</div>

我希望它能将数据传递给我的 table 名为 "blogs."

所以经过多次修改终于解决了这个问题

我做的第一件事是将我的控制器移动到 /app/books。php

我将代码简化为:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class books extends Model
{
    protected $fillable = [
        'title',
        'author',
        'category',
    ];
}

然后我将路由修改为不包含重定向:

Route::post('/submitbook', function (Request $request) {
    $data = $request->validate([
        'title' => 'required|max:255',
        'author' => 'required|max:255',
        'category' => 'required|max:255',
    ]);

也许最大的决定是偶然发生的。我正在处理一个单独的问题,必须清除我的 known_hosts 文件,然后一切正常。