如何在Laravel中一键更新MySql数据库值

时间:2018-06-09 07:43:03

标签: php laravel

我正在创建一个网站。因此,有一个表格显示用户。在我的数据库中,我为Pending存储了0,为Action行下的Approved存储了1。如果某个用户为0,则此表中将显示待处理,如果用户有1个已批准,则将显示。现在我想当有人点击此Pending按钮时,我想将数据库值更新为1.我尝试了如下。但是,当我点击Pending按钮时,它会给我这个错误 -

Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException
No message

而且我无法更新数据库值。

我该如何解决这个问题?

查看页面(AdminPanel.blade.php)

 <table class="table table-bordered">

            <tr>
                <td> Action</td>
            </tr>

            @foreach($data as $value )
                <tr>
                    @if($value->action ==0)
                        <td><a href="actionedit/{{ $value->id }}"><input type="submit" name="pending" value="Pending"
                                                                         class="btn btn-warning"></a></td>
                    @else
                        <td><a href="edit/{{ $value->id }}"><input type="submit" name="update" value="Approved"
                                                                   class="btn btn-success"></a></td>
                    @endif
                </tr>
            @endforeach
        </table>

控制器。 (AdminPanelController.php)

public function actionedit(Request $request)
    {
        // Add Validation

        DB::table('users')
            ->update(['action' => 1]);

            $request->session()->flash('Msg', 'Successfully Updated !!');

            return redirect('adminPanel');

    }

路线。

Route::put('/actionedit/{id}', 'AdminPanelController@actionedit');

1 个答案:

答案 0 :(得分:3)

您正在请求get而非put将其更改为get http动词

Route::get('/actionedit/{id}', 'AdminPanelController@actionedit');

或使用ajax请求postput