如何在laravel 5.4中提交表格

时间:2018-06-16 11:08:36

标签: php laravel-5 laravel-5.2 laravel-routing

我正在学习laravel 5.4框架。

在web.php中:

Route::post('form-submit',[

'uses' => 'Admincontroller@formSubmit',
'as' => 'f.submit',

]);

Admincontroller是:

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Request;
use App\Http\Controllers\Controller;
use App\Customer;

class Admincontroller extends controller{

public function index()
{
//echo"Index method";
return view('Welcome');
}
public function formSubmit()
{
    echo"HTML form submit";
} 
?>

xyz.blade.php是:

@extends('layout/test-data2')
@section('content')
{!! Form::open(['url' => 'form-submit'])  !!}
{!! Form::text('field_one') !!}
    {!! Form::submit('submit') !!}

{!! Form::close() !!}
@endsection

运行表单提交后,表单应该打开,如果单击按钮,则显示消息&#34; HTML表单提交&#34;应该是回声。

但是当我运行链接时,帖子不起作用并给出错误:

When I run url admin3, then got error:

(1/1) MethodNotAllowedHttpException
in RouteCollection.php line 251
at RouteCollection->methodNotAllowed(array('POST'))
in RouteCollection.php line 238
at RouteCollection->getRouteForMethods(object(Request), array('POST'))
in RouteCollection.php line 176
at RouteCollection->match(object(Request))
in Router.php line 546

但是当我使用get时,它只显示短信: HTML表单提交

1 个答案:

答案 0 :(得分:1)

该syntex是正确的,没有任何错误,事实是你不能简单地运行一个POST网址,这将被视为GET请求。

要使POST工作,您需要指定它的发布请求。例如我们指定的格式

<form method="post" action=<URL HERE>> </form>

您看到我们提到它的帖子请求。 但是,如果您只是尝试访问www.example.com/admin3,那么将被视为GET请求,因此您将收到该错误。

还有一件事, 对于控制器中的发布请求,添加Request $request以捕获发布数据。像这样的东西

public function postindex(Request $request)
{
   $data = $request->all(); //This will give you the data of all post value
    echo"Index method";
    //return view('Welcome');
}

也不要忘记导入请求。

相关问题