2016-08-19 171 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因为虽然帮助... :)