2016-10-11 2 views
0

저는 Laravel에서 새로 왔으며 응용 프로그램을 만들려고합니다. 양식을 만들었고 컨트롤러를 사용하여이 양식을 데이터베이스에 저장합니다. 양식에 "Status"라는 드롭 다운 필드가 있습니다.laravel에서 단일 열을 업데이트하는 방법

"상태"는 "카테고리"와 비슷하므로 다른 것을 변경하지 않고 변경해야합니다. 나는 코드를 작성하려고하지만 잘못된 것을하고있다.

컨트롤러 :

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' => '[email protected]']) !!} 
      {!! 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', '[email protected]'); 

나는 "상태"로 변경하려고하면를 반환 아래 내 코드를 볼 수 있습니다 다음 오류가 발생했습니다

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 

제발 도와 주실 수 있습니까?

답변

0

오류 메시지 및 스택 추적 정확히 무슨 일이 있었는지를 알려줍니다 :

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

당신은 (기본적으로 POST 방법) 양식을 제출하지만 당신은 단지 Route::get로 경로를 정의합니다.

Route::any으로 변경하거나 두 번째 경로 Route::post을 동일한 URL로 정의해야하지만 다른 메소드 호출이 필요합니다.

+0

나는 더 많은 관심을 기울이지 않아서 어리 석다. 그 덕분에, 정말 고마워요. –

+0

@EmirianJaku 괜찮습니다. 예외에서 스택 추적을 읽는 것을 잊지 마십시오. 흔히 일어난 일을 알려주거나, 적어도 올바른 방향으로 당신을 가르쳐 줄 것입니다. 예를 들어 어쩌면 당신은 그 해결책이 여기에 있는지 알지 못할 것입니다. 그러나 적어도 당신은 문제가 경로와 관련되어 있음을 알 것이며 열을 업데이트하는 것이 아닙니다. – andrewtweber

관련 문제