2016-08-19 173 views
1

你好,這是我在laravel中的控制器,我沒有在這裏找到問題。它會檢查文件是否手動輸入值爲1的數據集,但是如果我使用系統執行該操作,則不會更新該值,並且在未選中框的情況下該框會保持爲0。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

我覺得你的問題是從這一行來:'$上傳= $這個 - >上傳= 1;',您正在分配值到$ uploads這是一個對象而不是變量,所以你應該做這樣的事情:'$ uploads-> variable_to_update = $ this-> upload = 1;'。應該用'$ uploads-> uploaded = $ this-> request-> uploaded;' – d3r1ck

+0

'中的相應變量替換,它仍然不能正常工作......它不更新數據庫中的值,它仍然爲0當我點擊複選框,並且它仍然不會與數據庫值爲0.這就是我做的 '$ uploads-> uploaded = $ this-> upload = 1;'因爲上傳的是分配0和1的值我的View.php '' –

回答

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'); 
} 

謝謝d3r1ck因爲雖然幫助... :)