我是Laravel的新手,我正在尝试做一个简单的post
请求,但它无效。重定向到object not found
后会显示/o2
。有人会对此有所了解吗?我也在使用CSRF Token
,但事情不起作用。使用Laravel的v5.2。
Route::get('/o1', function(){
echo '<form method="post" action="/o2"><input name="_token" value="' . csrf_token() . '" type="hidden"><button type="submit" value="Submit">Submit</button></form>';
});
Route::post('/o2', function(){
echo "It works";
});
答案 0 :(得分:1)
您正尝试在浏览器中访问帖子路线以打印表单。这不会起作用。您需要创建一个get路径来打印表单,然后将操作设置为post route。尝试这样的事情:
Route::get('/o1', function(){
echo '<form method="post" action="/o2"><input name="_token" value="' . csrf_token() . '" type="hidden"><button type="submit" value="Submit">Submit</button></form>';
});
Route::post('/o2', function(Request $request) {
echo $request->all();
});
答案 1 :(得分:0)
当您收到MethodNotAllowedHttpException时,如何调用此路由?
此帖子请求应由您正在创建的实际表单调用。 并且通常不应返回实际表单,而是保留数据,然后将用户重定向到页面以显示结果。
所以一般来说,你会有一个获得和一个帖子:
Route::get('/o1', function(){
echo '<form method="post" action="/o2"><input name="_token" value="' . csrf_token() . '" type="hidden"><button type="submit" value="Submit">Submit</button></form>';
});
Route::post('/o1', function(){
// persist your form here
});
我强烈建议您使用控制器。 https://laravel.com/docs/5.6/controllers