php - 如何使用 Laravel 发布数据并将其插入数据库?

标签 php database laravel

我有一个 Controller 文件,它处理检索数据并将数据插入数据库:

namespace App\Http\Controllers;

use App\Dream;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;

class DreamsController extends Controller
{
    public function submit(Request $request) {
        $dreamEntry = new Dream();
        $dreamEntry->dream = $request->input('dream');
        $dreamEntry->save();
        return redirect('/')->with('status', 'INSERTED');
    }
}

我有这个类,为了梦想:

class Dream extends Model
{
    use Notifiable;

    protected $fillable = [
        'dream'
    ];
}

我的 web.php 文件中的路由:

Route::post('upload/submit', array('dream'=>'DreamController@submit'));

还有一个非常简单的形式:

<form action="/upload/submit" method="post">
    <textarea></textarea>
    <button type="submit">SUBMIT</button>
</form>

从数据库中获取数据工作正常,我可以看到我的 submit 函数正在运行,因为在 和 我看到根 (/) 处的 URL,但我得到 error 419 前面的代码有什么问题?

最佳答案

你需要一个csrf在你的字段 <form> ,还有你的 <textarea>没有 name=属性:

<form action="/upload/submit" method="post">
  {{ csrf_field() }}
  <textarea name="dream"></textarea>
  <button type="submit">SUBMIT</button>
</form>

此外,我不确定 array('dream'=>'DreamController@submit')有效,可以简单地:

Route::post('upload/submit', 'DreamController@submit'); 
// 2nd parameter is the Controller/Function you want to use.

关于php - 如何使用 Laravel 发布数据并将其插入数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52841360/

相关文章:

javascript - 如何提交 "vue-multiselect "选定选项 - Vue.js

javascript - 使用ajax将值post到php时出现错误

sql - 当与每条信息关联的标签数量可变时,在关系数据库中存储标签的好方法

database - 在 CouchDb View 中列出所有数据库,验证函数

php - 打印出对象的键/值

使用存储库和 phpspec 中的关系测试 Laravel 模型

php - 如何在 PHP 中创建允许我手动输入数据的 GridView ?

javascript - 通过AJAX/PHP设置变量提交URL,无需刷新页面,加载变量

php - 用户指定的内容共享,例如 G+

mysql - 为什么 MySQL 对我来说这么慢?