【发布时间】:2014-08-14 10:34:56
【问题描述】:
这是我的表格:
{{ 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>
是post不放,
编辑 2
问题是因为我将route 输入错误为rout,但我没有收到此异常
Trying to get property of non-object
这是视图:
{{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() }}
这是控制器update
$input = Input::all();
$validation = Validator::make($input, WaitingTimes::$rules);
if ($validation->passes()){}else{
return Redirect::route('waitingtimes.edit')->withInput()->withErrors($validation)->with(array(
'verticalMenu'=>'none',
'verticalMenuTab' => 'none',
'data' => $input
));
}
请注意,此 html 刀片代码用于编辑数据,当我调用编辑函数时它工作正常,当用户尝试编辑信息但验证失败时,我也使用它来重定向
【问题讨论】:
-
是的,HTML 表单只接受 POST 和 GET 方法,laravel 检查发布的
_method属性的值,laravel 表单助手为此创建一个隐藏输入(<input name="_method" type="hidden" value="PUT">)。这是一个 post 请求,但它调用了 put 处理程序。 -
@undefined 那么为什么会发生异常呢?
-
你也可以发布你的
Routes吗? -
@Unnawut 这很容易
Route::resource('waitingtimes', 'WaitingtimesController'); -
Input::all()返回一个数组,你把它当作一个对象,$data->id,应该是$data['id']?
标签: php laravel laravel-4 blade