将方法'put'添加到laravel 4.2中的url

时间:2016-01-31 15:11:36

标签: php laravel-4

我试图改变数据库记录的状态,只需按一下按钮就可以了,我有这个

视图

<td>

            <a class="btn btn-small btn-warning" href="{{ URL::to('brands/'.$value->BrandID.'/archive') }}">Archive  </a>



        </td>

控制器

public function archive($id)
{
    $rules= array ('BrandName' =>'required | max:20',);
    $validator = Validator::make(Input::all(), $rules);

    if($validator->fails())
    {
        return Redirect::to('brands.view')
        ->withErrors($validator);

    } else {

        DB::table('tbl_brands')->where('BrandID' , $id)
        ->update(
            array
            (
                'Status' => 'Archived'
            ));

        Session::flash('message','Successfully Archived!');
        return Redirect::to('brandsview');
    }
}

和路线

Route::put('brands/{id}/archive', array('as' => 'Brandarch', 'uses'=>'BrandsController@archive'));

和我的错误是什么方法异常。我向下滚动了一下,看到错误中,http请求是'get',我知道应该“放”任何关于如何正确执行此操作的想法?提前谢谢

1 个答案:

答案 0 :(得分:1)

您需要将带有名称为_method的隐藏字段的表单中的超链接更改为提交表单,只有这样您才能控制使用的HTTP方法。

例如:

<form action="{{ URL::to('brands/'.$value->BrandID.'/archive') }}" method="POST">
    <input type="hidden" name="_method" value="PUT">
    <input type="hidden" name="_token" value="{{ csrf_token() }}">
    <input type="submit" value="Archive">
</form>