[英]How to post data, and insert it to the database with Laravel?
我有一個控制器文件,它處理檢索和插入數據到數據庫:
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
前面的代碼有什么問題?
您的<form>
需要一個csrf
字段,而您的<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.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.