我是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";
});
您正在尝试访问浏览器中的邮路线以打印表单。这是行不通的。您需要创建一个GET路由以打印表单,然后将操作设置为邮政路线。尝试这样的事情:
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();
});
当您获得MethodLallowEdhtpexception时,您如何调用此路线?
应通过您创建的实际表格调用此帖子请求。通常不应返回实际表单,而应持续数据,然后将用户重定向到页面以显示结果。
所以总的来说,您会得到一个帖子和帖子:
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