如何更新 laravel 中的单列

How to update single column in laravel

我是 Laravel 的新手,我正在尝试创建一个应用程序。我创建了一个表单,并使用控制器将此表单存储到我的 database.The 表单中,该表单有一个名为 "Status".

的下拉字段

"Status" 就像 "Categories" 所以我需要在不改变任何其他东西的情况下改变它。我正在尝试编写代码,但我做错了什么。你可以在下面看到我的代码:

控制器:

public function show($id)
    {
        $servicedevice = DeviceService::findOrFail($id);

        return view('device_service.show', compact('servicedevice', $servicedevice));
    }       

public function devicestatus(Request $request)
        {
          $devstat = DeviceService::FindOrFail($servicedevice->id);
          $devstat->status_id = $request->device_id;
          $devstat->save();

          return back();
        }

查看:

            {!! Form::open(['action' => 'DeviceServiceController@devicestatus']) !!}
            {!! Form::select('status_id', $statuslist, null, [
                'class' => 'js-example-basic-single',
                'style' => 'width:50%'
                ]) !!}
            {!! Form::hidden('id', $servicedevice->id) !!}
            {!! Form::submit('ok', ['class' => 'btn btn-sm btn-flat btn-warning']) !!}
            {!! Form::close(); !!}

路线:

Route::get('/devicestatus', 'DeviceServiceController@devicestatus');

当我尝试更改"Status"时,returns出现如下错误

MethodNotAllowedHttpException in RouteCollection.php line 218:

in RouteCollection.php line 218
at RouteCollection->methodNotAllowed(array('GET', 'HEAD')) in RouteCollection.php line 205
at RouteCollection->getRouteForMethods(object(Request), array('GET', 'HEAD')) in RouteCollection.php line 158
at RouteCollection->match(object(Request)) in Router.php line 780
at Router->findRoute(object(Request)) in Router.php line 610
at Router->dispatchToRoute(object(Request)) in Router.php line 596
at Router->dispatch(object(Request)) in Kernel.php line 267
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in CheckForMaintenanceMode.php line 46
at CheckForMaintenanceMode->handle(object(Request), object(Closure)) in Pipeline.php line 137
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 33
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Pipeline.php line 104
at Pipeline->then(object(Closure)) in Kernel.php line 149
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 116
at Kernel->handle(object(Request)) in index.php line 54

你能帮帮我吗?

错误消息和堆栈跟踪告诉您到底发生了什么:

MethodNotAllowedHttpException
...
RouteCollection->methodNotAllowed(array('GET', 'HEAD'))

您正在提交表单(默认为 POST 方法)但您只将路由定义为 Route::get

您需要将其更改为 Route::any 或将第二条路线 Route::post 定义为相同的 URL 但使用不同的方法调用。