我有一个 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/