2017-11-19 8 views
0

データベースステータスを0または1に切り替えるためにスイッチを切り替えようとしています。私はajaxリクエストを使用していますが、トグルを試みると何も起こりません。私は何を正しくしていないのですか?データベース内のデータを切り替える

私はアップデートを含んでいますが、何も起こらず、私のコンソールにもエラーはありません。私は正しいことをしていますか?

コントローラ

public function updateFlag() 
    { 
     if(Request::ajax()) 
     { 
      $auto_reply = Toggle::where('id', Auth::user()->id)->first(); 
      if($auto_reply->status == 0) 
      { 
       $auto_reply->status = 1; 

       $auto_reply->save(); 
      } 

      else{ 
        $auto_reply->status = 0; 

        $auto_reply->save(); 
       } 
     } 
    } 

HTML

<div class="container "> 
    <input checked data-toggle="toggle" data-on="Enabled" data-off="Disabled" name="auto_reply" type="checkbox"> 
</div> 

JS

<script> 
$("[name='auto_reply']").bootstrapSwitch(); 
     $(document).ready(function() { 
      $("[name='auto_reply']").on('switchChange.bootstrapSwitch',function(){ 
       $.ajax({ 
        url: '/admin/dashboard/status/update', 
        method: 'post', 
        success: function(data){ 
         alert("Auto Reply has been Turned On"); 
        }, 
        error: function(){ 
         alert("Auto Reply has failed"); 

        } 
       }); 
      }); 
     }); 
</script> 

R更新

<script> 

     $(document).ready(function() { 
      $("[name='auto_reply']").on('switchChange.bootstrapSwitch',function(){ 

       $.ajaxSetup({ 
    headers: { 
     'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content') 
    } 
}); 
       $.ajax({ 
        url: '/admin/dashboard/status/update', 
        method: 'post', 
        success: function(data){ 
        alert("Auto Reply has been Turned: "+data.msg); 
        }, 
        error: function(){ 
        alert("Auto Reply has failed"); 

        } 
       }); 
      }); 
     }); 
</script> 

エラーログ

[

2017-11-19 19:48:23] local.ERROR: Non-static method Illuminate\Http\Request::ajax() should not be called statically {"userId":1,"email":"[email protected]","exception":"[object] (ErrorException(code: 0): Non-static method Illuminate\\Http\\Request::ajax() should not be called statically at /Users/emmnock/FastFoodOderSystem/app/Http/Controllers/Admin/LoyaltyController.php:70) 
    [stacktrace] 
    #0 /Users/emmnock/FastFoodOderSystem/app/Http/Controllers/Admin/LoyaltyController.php(70): Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleError(8192, 'Non-static meth...', '/Users/emmnock/...', 70, Array) 
    #1 [internal function]: App\\Http\\Controllers\\Admin\\LoyaltyController->updateFlag() 
    #2 /Users/emmnock/FastFoodOderSystem/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): call_user_func_array(Array, Array) 
    #3 /Users/emmnock/FastFoodOderSystem/vendor/laravel/framework/src/Illuminate/R 

outing/ControllerDispatcher.php(45): Illuminate\\Routing\\Controller->callAction('updateFlag', Array) 
+0

あなたは本当にあなたのアプリにトグルモデルがありますか? – lewis4u

+0

@ lewis4uはい私は – Switz

+0

持っていますどのようなモデルのトグルはプロパティからですか?私はテーブルの列を意味する? – lewis4u

答えて

0

これを試してみてくださいOUTE

Route::post('admin/dashboard/status/update', '[email protected]'); 

...

public function updateFlag(Request $request) 
    { 
     if($request->ajax()) 
     { 
      $auto_reply = Toggle::where('id', Auth::user()->id)->first(); 
      if($auto_reply->status == 0) 
      { 
       $auto_reply->status = 1; 

       $auto_reply->save(); 
      } 

      else{ 
        $auto_reply->status = 0; 

        $auto_reply->save(); 
       } 
     } 
    } 
関連する問題