2017-05-19 1 views
-1

소프트 삭제 및 강제 삭제 옵션이있는 사용자 관리 시스템을 만들었습니다. 그러나 강제 삭제 옵션이 작동하는 데 문제가 있습니다.laravel에서 삭제 방법 5.4

경로 :

Route::post('users/{user}/delete', '[email protected]'); 

관련 컨트롤러 코드 :

public function forcedelete(User $user) 
{ 
    $user->forceDelete(); 
    return redirect('users/trash'); 
} 

뷰 코드 :

<a href="{{ url('users/'.$user->id.'/delete') }}" 
    onclick="event.preventDefault(); document.getElementById('delete').submit();"> 
    <i class="fa fa-trash-o btn btn-danger btn-xs"></i> 
</a> 

<form id="delete" action="{{ url('users/'.$user->id.'/delete') }}" 
     method="POST" style="display: none;"> 
    {{ csrf_field() }} 
    {{ method_field('DELETE') }} 
</form> 

내가지고있어 오류가

MethodNotAllowedHttpException in RouteCollection.php line 233: 

왜 작동하지 않으며 어떻게 해결할 수 있습니까?

+0

컨트롤러에 동일한 메소드 이름을 사용할 수 없으므로 메소드 이름을 업데이트하고 시도하십시오. – Webinion

+0

내 소프트 삭제 메서드 이름 만 파괴 'public function destroy (User $ user) { $ user-> delete(); return redirect ('users'); } ' – Masum

+1

예, 그렇다면 이것을 사용하거나이'forceDestory'와 같은 것을 사용할 수 있습니다. – Webinion

답변

2

이 경로를 다른 사용자 경로 또는 사용자 자원 경로 위에 배치하십시오. 또한 소프트 모델 삭제 기능을 사용하여 경로 모델 바인딩을 사용하려고합니다. 작동하지 않습니다. ID를 사용하고 수동으로 삭제해야합니다.

public function forcedelete($id) 
{ 
    User::where('id', $id)->forcedelete(); 
    return redirect('users/trash'); 
} 

편집 : 정의 된 경로 방법은 포스트이기 때문에 또한, 양식에서 {{ method_field('DELETE') }}을 삭제합니다.

+0

Sandeesh에게 감사드립니다. 그 작품. 다시 많은 많은 tnx. – Masum

관련 문제