【问题标题】:How to Submit Form Data into MySQL Database如何将表单数据提交到 MySQL 数据库
【发布时间】:2019-04-13 19:30:53
【问题描述】:

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

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

【问题讨论】:

  • 危险:此代码是vulnerable to XSS 用户输入需要转义才能插入到 HTML 文档中!。
  • 你应该learn how to use the label element properly。如果没有 for 属性或其中的表单控件,标签是无用的。
  • 谢谢@Quentin 我一定会做出这些改变。我简要阅读了您包含的链接,并且需要花一些时间来阅读它。你能告诉我我的代码中缺少什么阻止数据移动到 SQL 数据库吗?
  • 在标签建议上,这会实现您的建议吗?


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


【解决方案1】:

所以我在进行了几次更改后终于解决了这个问题。

我做的第一件事是将控制器移到 /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 文件,之后一切正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-11
    • 2014-05-25
    • 1970-01-01
    • 2023-03-15
    • 2018-07-23
    • 1970-01-01
    • 1970-01-01
    • 2021-12-14
    相关资源
    最近更新 更多