2017-05-29 41 views
1

我有這個問題。 在我的儀表板我要停用並激活帳戶我的註冊用戶和管理員如何在Laravel控制器中的銷燬方法內創建一個條件

這裏是我的控制器:

public function destroy($id) 
{ 
    $getVal = Input::has('status'); 
    if($getVal === false) //if checkbox is set to false 
    { 
     $this->users->softDel($id); 
    } 
    else 
    { 
     //if checkbox is set to true 
     $this->users->restoreDel($id); 
    } 
    return redirect('\users'); 
} 

型號:

public function softDel($id) 
{ 
    return User::where('id',$id)->delete(); 
} 
public function restoreDel($id) 
{ 
    return User::where('id',$id)->restore(); 
} 

刀片:

{!! Form::open(['method' => 'DELETE' , 'route' => ['users.destroy',$data->id]]) !!} 
    <!--checkbox--> 
    {!! Form::checkbox('status',null,($data->deleted_at != null ? false : true),['data-toggle' => 'toggle', 'data-size' => 'small','data-on' => 'activate' , 'data-off' => 'deacticvate' , 'data-offstyle' => 'danger' , 'data-onstyle' => 'success', 'class' => 'status' , 'data-id' => ($data->id)]) !!} 
    <!----> 
{!! Form::close() !!} 

這裏是我的ajax請求:

jQuery(function($){ 
    $('.status').on('change',function(){ 
     var currentToken = $('meta[name="csrf-token"]').attr('content');//getting the token 
     var id = $(this).data('id'); 

     $.ajax({ 
      method: "DELETE", 
      url: "https://stackoverflow.com/users/"+id, 
      dataType: "json", 
      data: { _token: currentToken}, 
      success:function(response) 
      { 
       console.log(response); 
      } 

     }); 
    }); 
}); 

我只使用軟刪除來刪除/恢復任何帳戶。 我的控制器將只執行IF語句。 我不知道發生了什麼事。請幫助:)謝謝

回答

0

我建議你應該從你的AJAX調用傳遞status複選框的選中/取消像的基礎上,

$.ajax({ 
    method: "DELETE", 
    url: "https://stackoverflow.com/users/"+id, 
    dataType: "json", 
    data: { _token: currentToken,status:this.checked?1:0}, 
    success:function(response) { 
     console.log(response); 
    } 
}); 

,改變你的控制器一樣,

public function destroy($id) 
{ 
    $getVal = Input::get('status'); //you will get 1 or 0 here 
    if(!$getVal) { // if checkbox is unchecked, then status is 0 
     $this->users->softDel($id); 
    } 
    else { // in case of 1 
     //if checkbox is set to true 
     $this->users->restoreDel($id); 
    } 
    return redirect('\users'); 
} 
+0

感謝答案先生。我會嘗試:) – NewLara

+0

仍然不工作先生..兩個語句(如果和其他)不工作 – NewLara

+0

檢查瀏覽器的控制檯爲您的AJAX請求? –

相關問題