2015-02-07 1 views
0

안녕하세요, 소프트 삭제 및 양식을 사용하여 사용자를 복원하려고하는데, 나는 사용자 인증 및 역할에 대해 Zizaco ConfideZizaco Entrust 인 두 개의 패키지를 사용하고 있습니다. 그러나 내가 원하는,양식을 사용하여 laravel 소프트 삭제

Route::get('/deleteme', function(){ 
    User::find(2)->delete(); 
    return 'done'; 
}); 

이 타임 스탬프 필드를 업데이트 : 나는하여 user.php 모델

use SoftDeletingTrait; 
use ConfideUser; 
use HasRole; 
protected $softDelete = true; 

에 다음을 추가 한 나는이 작품 테스트하기 위해 테스트를 실행했습니다 이것을 내 컨트롤러에 넣어서 깔끔하게 정리하고 양식을 제공하십시오.

@if(empty($user->deleted_at)) 
      {{Form::open(['method'=>'PATCH','action'=> 
      ['[email protected]',$user->id]])}} 
       <button type="submit">Suspend</button> 
       {{Form::close()}} 
      @else 
      {{Form::open(['method'=>'delete','action'=> 
      ['[email protected]',$user->id]])}} 
       <button type="submit">Re-activate</button> 
      {{Form::close()}} 
      @endif 

내 컨트롤러에서 : 그래서 사용자의 테이블에 이런 짓을 한 내 노선에서

public function softDeleteUser($id){ 
    $user = User::find($id); 
    $user->delete(); 
    // redirect 
    return Redirect::to('/admin'); 
} 

public function restoreUser($id) { 
    User::find($id)->restore();   
    $user->save(); 
    Redirect::to("/admin"); 
} 

:

Route::post('/admin/user/{resource}/delete', 
     array('as' => 'admin.user.delete', 'uses' 
     =>'[email protected]')); 
Route::post('/admin/user/{resource}/restore', 
     array('as' => 'admin.user.restore', 
    'uses' =>'[email protected]')); 

이 오류가 얻을 그러나 :

Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException 

내가 뭘 잘못하고있어?

답변

1

글쎄 두 가지 양식을 PATCH 및 DELETE 방법을 사용하도록 설정했지만 경로가 POST (Route::post)로 설정되었습니다.

Route::patch('/admin/user/{resource}/delete', 
    array('as' => 'admin.user.delete', 'uses' 
    =>'[email protected]')); 
Route::delete('/admin/user/{resource}/restore', 
    array('as' => 'admin.user.restore', 
    'uses' =>'[email protected]')); 

또는 (이 POST로 설정됩니다) 양식에서 근무

{{Form::open(['action'=> ['[email protected]',$user->id]])}} 
    <button type="submit">Suspend</button> 
{{Form::close()}} 

그리고

{{Form::open(['action'=> ['[email protected]',$user->id]])}} 
    <button type="submit">Re-activate</button> 
{{Form::close()}} 
+0

아 덕분 method를 제거 :

당신은 경로를 변경할 수 있습니다 . – 001221