2016-08-19 10 views
1

こんにちは、これはlaravelのコントローラです。ここで問題は発生しません。 1の値を持つデータセットを手動で入力するとファイルをチェックしますが、システムでそれを行うと、値は更新されず、チェックボックスがオフのままです。チェックボックスコントローラin laravel

私がしようとしているのは、ユーザーがそれをチェックして、それをチェックし、データベース値を更新するまでボックスをチェックしたままにしておくことです。事前にありがとう

public function tickoffUpload($id, $type, User $user) { 

    $uploads = $this->upload->get($id); 

    // if($this->request->isMethod('get')) { 
    //  if($user->can('untick', $uploads)) { 
    //   $uploads = $this->upload = 0; 
    //  } else { 
    //   return $uploads = $this->upload = 1; 
    //  } 
    // } 

    if($this->request->isMethod('get')) { 
     if($type == 0) { 
      $uploads = $this->upload = 1; 
     } else if($type == 1){ 
      $uploads = $this->upload = 0; 
      } 
    } 

    if(isset($_POST["uploaded"]) && !empty($_POST["uploaded"])) { 

     $uploads->uploaded = $this->request->uploaded; 
     $uploads->save(); 
    } 

    return redirect('/home'); 
} 
+0

をおd3r1ckありがとう: '$アップロード=の$ this - > = 1のアップロード;'、あなたが代入されています値は変数ではないオブジェクトである$ uploadsになるので、代わりに次のようなことを行うべきです: '$ uploads-> variable_to_update = $ this-> upload = 1;'。 は '$ uploads-> uploaded = $ this-> request-> uploaded;のように対応する変数に置き換えてください。 – d3r1ck

+0

まだ動作していません...データベースの値はまだ更新されていません0チェックボックスをクリックすると、0のデータベース値でuntickのままです。これは私が行ったことです。 アップロードされた値は0と1を割り当てる値なので、 '$ uploads-> uploaded = $ this-> upload = 1;' ' –

答えて

0

私はこれを選別しました。私はあなたがここに見ることができるようにフォームから要求値を得ていなかったので、ここで私がやった更新されたコードは$uploads->uploaded = $this->upload = 1;です。

public function tickoffUpload($id, $type, User $user) { 

    $uploads = $this->upload->get($id); //gets upload id 

    // requesting uploaded value either 0 or 1 
    if($this->request->isMethod('get')) { 
     if($type == 0) { 
      $uploads->uploaded = $this->request->upload = 1; 
     } else if($type == 1) { 
      $uploads->uploaded = $this->request->upload = 0; 
      } 
    } 

    $uploads->save(); // saving the value in database 

    return redirect('/home'); 
} 

は、私はあなたの問題は、このラインから来ていると思う...しかし助けのために:)