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

时间:2019-04-13 19:30:54

标签: php mysql form-submit homestead laravel-5.8

我对Laravel和编码一般还是比较陌生。我正在尝试使用Eloquent并将数据从表单传递到MySQL数据库。我可以“提交”,没有任何错误,但是看不到表中的数据。我觉得我的代码变得越来越混乱,因为我想弄清楚这一点,我希望对自己的代码进行回顾。通过阅读教程,书籍并查看其他人的代码,我尝试了几种不同的方法。

路线

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');
}

查看/刀片

<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>

我希望这会将数据传递到名为“博客”的表中。

1 个答案:

答案 0 :(得分:0)

所以我终于做了几处修改后解决了这个问题。

我做的第一件事是将控制器移至/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',
    ]);

也许最大的解决方案是由uke幸发生的。我当时正在处理一个单独的问题,必须清除我的known_hosts文件,然后一切正常。