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')}因为你在视图中的所有错误,而不是为了一个更干净的代码。我已经这样做了,但它是一个打字错误,我忘了把它放在问题中,然后我把它放在问题中,但有人编辑了问题并删除了它。我已经这样做了,但它是一个打字错误,我忘了把它放在问题中,然后我把它放在问题里,但是有人编辑了这个问题并删除了它。拉雷维尔也支持。拉雷维尔也支持。