将数据从表单发布到控制器时出现 MethodNotAllowedHttpException
MethodNotAllowedHttpException when posting data from form to controller
我正在做一个简单的输入字段并将数据从表单提交到控制器,但总是得到 MethodNotAllowedHttpException。
blade.php
<form class="form-horizontal" method="post" action="sale/api">
<div class="form-group">
<label for="name" class="col-lg-2 control-label">
Subdomain Name
</label>
<div class="col-lg-10">
<input type="text" class="form-control" id="name" name="name">
</div>
</div>
<div class="form-group">
<label for="api_key" class="col-lg-2 control-label">
Api Key
</label>
<div class="col-lg-10">
<input type="api_key" class="form-control" id="api_key" name="api_key">
</div>
</div>
<div class="form-group">
<div class="col-lg-10 col-lg-offset-2">
<button type="submit" class="btn btn-primary">Save</button>
</div>
</div>
<input type="hidden" name="_token" value="{{ csrf_token() }}">
</form>
控制器
public function sync()
{
$input = Input::only('name','api_key');
$user = new Sale;
$user->name = $input['name'];
$user->api_key = $input['api_key'];
Debugbar::info($user->name);
}
路线
Route::post('sale/api','SaleController@sync');
将您的 route.php 更新为
Route::post('/sale/api',array('as' => 'sale.api', 'uses' => 'SaleController@sync'));
将您的 blade 更新为,
<form class="form-horizontal" method="post" action="{{route('sale.api')}}">
让我知道它是否有效。
需要修改的是您的操作:
html:
<form class="form-horizontal" method="post" action="{{ route('sale.api') }}">
@csrf
<div class="form-group">
<label for="name" class="col-lg-2 control-label">
Subdomain Name
</label>
<div class="col-lg-10">
<input type="text" class="form-control" id="name" name="name">
</div>
</div>
<div class="form-group">
<label for="api_key" class="col-lg-2 control-label">
Api Key
</label>
<div class="col-lg-10">
<input type="api_key" class="form-control" id="api_key" name="api_key">
</div>
</div>
<div class="form-group">
<div class="col-lg-10 col-lg-offset-2">
<button type="submit" class="btn btn-primary">Save</button>
</div>
</div>
<input type="hidden" name="_token" value="{{ csrf_token() }}">
路线:
Route::post('/sale/api','SaleController@sync')->name(sale.api);
希望这对您有所帮助! :)
在您的表单中添加 csrf 字段。
<form class="form-horizontal" method="post" action="sale/api">
{{csrf_field()}}
Laravel 不会让你 post 没有 csrf 令牌。
像这样更新表格
<form class="form-horizontal" method="post" action="{{ url('sale/api')}}">
我正在做一个简单的输入字段并将数据从表单提交到控制器,但总是得到 MethodNotAllowedHttpException。
blade.php
<form class="form-horizontal" method="post" action="sale/api">
<div class="form-group">
<label for="name" class="col-lg-2 control-label">
Subdomain Name
</label>
<div class="col-lg-10">
<input type="text" class="form-control" id="name" name="name">
</div>
</div>
<div class="form-group">
<label for="api_key" class="col-lg-2 control-label">
Api Key
</label>
<div class="col-lg-10">
<input type="api_key" class="form-control" id="api_key" name="api_key">
</div>
</div>
<div class="form-group">
<div class="col-lg-10 col-lg-offset-2">
<button type="submit" class="btn btn-primary">Save</button>
</div>
</div>
<input type="hidden" name="_token" value="{{ csrf_token() }}">
</form>
控制器
public function sync()
{
$input = Input::only('name','api_key');
$user = new Sale;
$user->name = $input['name'];
$user->api_key = $input['api_key'];
Debugbar::info($user->name);
}
路线
Route::post('sale/api','SaleController@sync');
将您的 route.php 更新为
Route::post('/sale/api',array('as' => 'sale.api', 'uses' => 'SaleController@sync'));
将您的 blade 更新为,
<form class="form-horizontal" method="post" action="{{route('sale.api')}}">
让我知道它是否有效。
需要修改的是您的操作:
html:
<form class="form-horizontal" method="post" action="{{ route('sale.api') }}">
@csrf
<div class="form-group">
<label for="name" class="col-lg-2 control-label">
Subdomain Name
</label>
<div class="col-lg-10">
<input type="text" class="form-control" id="name" name="name">
</div>
</div>
<div class="form-group">
<label for="api_key" class="col-lg-2 control-label">
Api Key
</label>
<div class="col-lg-10">
<input type="api_key" class="form-control" id="api_key" name="api_key">
</div>
</div>
<div class="form-group">
<div class="col-lg-10 col-lg-offset-2">
<button type="submit" class="btn btn-primary">Save</button>
</div>
</div>
<input type="hidden" name="_token" value="{{ csrf_token() }}">
路线:
Route::post('/sale/api','SaleController@sync')->name(sale.api);
希望这对您有所帮助! :)
在您的表单中添加 csrf 字段。
<form class="form-horizontal" method="post" action="sale/api">
{{csrf_field()}}
Laravel 不会让你 post 没有 csrf 令牌。
像这样更新表格
<form class="form-horizontal" method="post" action="{{ url('sale/api')}}">