Php 拉韦尔FormPost代替put
这是我的表格:Php 拉韦尔FormPost代替put,php,laravel,laravel-4,blade,Php,Laravel,Laravel 4,Blade,这是我的表格: {{ Form::model($data, array( 'route' => array('waitingtimes.update', $data->id), 'class' => 'mainInformationContrainer', 'method' => 'put' )) }} 当我提交表格时,我得到了 Symfony \ Component \ HttpKernel \ Exception \ MethodNotAll
{{ Form::model($data, array(
'route' => array('waitingtimes.update', $data->id),
'class' => 'mainInformationContrainer',
'method' => 'put'
)) }}
当我提交表格时,我得到了
Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException
虽然我已经将请求设置为put
你能帮我吗
编辑1
我注意到表单html是
<form method="POST" action="http://localhost:8082/test/public/waitingtimes/2" accept-charset="UTF-8" class="mainInformationContrainer">
</form>
这是一种观点:
{{Form::model($data, array(
'route' => array('waitingtimes.update', $data->id)
, 'class' => 'mainInformationContrainer',
'method' => 'put'
))}}
<ul>
<li>
<label>First Time:</label>
<div class="oneInfo">
{{ Form::text('startTime', $value=null, array('class' => 'time ui-timepicker-input', 'id' => 'startTime', 'autocomplete' => 'off'))}}
<span class="errorMessage">
<?php
echo $errors->first('startTime');
?>
</span>
</div>
</li>
<li>
<label>End Time:</label>
<div class="oneInfo">
{{Form::text('endTime', $value=null, array('class' => 'time ui-timepicker-input', 'id' => 'endTime'))}}
<span class="errorMessage">
<?php
echo $errors->first('endTime');
?>
</span>
</div>
</li>
<li>
<label>Value:</label>
<div class="oneInfo">
{{Form::text('value', $value=null, array())}}
<span class="errorMessage">
<?php
echo $errors->first('value');
?>
</span>
</div>
</li>
<li>
<input type="submit" value="Save Changes"/>
<input type="button" value="Cancle" class="cancelButton"/>
</li>
</ul>
{{ Form::close() }}
请注意,此html刀片代码用于编辑数据,当我调用编辑函数时,它工作正常,并且当用户尝试编辑信息但验证失败时,我也使用它重定向。您需要在表单创建中指定方法,将其添加到表单::模型数组:
'method' => 'PUT'
您需要在表单创建中指定方法,将其添加到表单::模型数组中:
'method' => 'PUT'
您需要告诉您的表单您将使用方法
PUT
:
{{ Form::model($data, array(
'route' => array('waitingtimes.update', $data->id),
'class' => 'mainInformationContrainer',
'method' => 'put',
)) }}
请注意,您仍将在表单中看到
method=“POST”
,但Laravel将在表单中添加一个名为\u method
的隐藏字段。请参见您需要告诉您的表单您将使用方法PUT
:
{{ Form::model($data, array(
'route' => array('waitingtimes.update', $data->id),
'class' => 'mainInformationContrainer',
'method' => 'put',
)) }}
请注意,您仍将在表单中看到method=“POST”
,但Laravel将在表单中添加一个名为\u method
的隐藏字段。参见我找到了解决方案
那是
return Redirect::back()->withInput()->withErrors($validation)->with(array(
'verticalMenu'=>'none',
'verticalMenuTab' => 'none',
'data' => $input
));
多亏了这个问题
我找到了解决办法
那是
return Redirect::back()->withInput()->withErrors($validation)->with(array(
'verticalMenu'=>'none',
'verticalMenuTab' => 'none',
'data' => $input
));
多亏了这个问题
是,HTML表单仅接受POST和GET方法,laravel检查POST
\u方法属性的值,laravel表单帮助程序为此创建隐藏输入(
)。这是一个post请求,但它调用put处理程序。@未定义,那么为什么会发生异常?您是否也可以发布您的Routes
?@Unnawut这很容易Route::resource('waitingtimes','WaitingtimesController')
Input::all()
返回一个数组,将其视为一个对象,$data->id
,它应该是$data['id']
?是的,HTML表单只接受POST和GET方法,laravel检查POST的\u方法
属性的值,laravel表单帮助程序为此创建一个隐藏的输入(
)。这是一个post请求,但它调用put处理程序。@未定义,那么为什么会发生异常?您是否也可以发布您的Routes
?@Unnawut这很容易Route::resource('waitingtimes','WaitingtimesController')
Input::all()
返回一个数组,你把它当作一个对象,$data->id
,它应该是$data['id']
?我已经这样做了,我忘了把它放在问题中,结果是一样的。你在表单中得到隐藏字段名“\u method”了吗?(它是由laravel生成的,用于欺骗方法PUT)不,我的意思是在运行代码后检查视图,然后在浏览器上单击“查看源代码”,在运行时检查表单元素,以查看隐藏的表单名称“\u method”是否有值添加了“put”。put或post现在没有问题,我编辑了这个问题,问题是其他的,我只是输入了rout
ErrorGood,顺便说一句,你可能想使用{{{{{$errors->first('startTime')}对于视图中的所有错误,而不是为了更干净的代码而回显。我已经这样做了,但我忘了把它放在问题中,结果是相同的。您是否在表单中获得了隐藏字段名“\u method”?(它是由laravel生成的,用于欺骗方法PUT)不,我的意思是在运行代码后检查视图,然后在浏览器上单击“查看源代码”,在运行时检查表单元素,以查看隐藏的表单名称“\u method”是否有值添加了“put”。put或post现在没有问题,我编辑了这个问题,问题是其他的,我只是输入了rout
ErrorGood,顺便说一句,你可能想使用{{{{{$errors->first('startTime')}因为你在视图中的所有错误,而不是为了一个更干净的代码。我已经这样做了,但它是一个打字错误,我忘了把它放在问题中,然后我把它放在问题中,但有人编辑了问题并删除了它。我已经这样做了,但它是一个打字错误,我忘了把它放在问题中,然后我把它放在问题里,但是有人编辑了这个问题并删除了它。拉雷维尔也支持。拉雷维尔也支持。