【问题标题】:delete all that are checked in laravel删除所有在 laravel 中检查的内容
【发布时间】:2016-09-26 14:31:44
【问题描述】:

您好,我想从数据库中删除用户正在检查的所有行,但每当我这样做时,我都会收到此错误"Missing argument 1 for App\Http\Controllers\UploadController::deleteSelectedUploads()"。我知道为什么会出现这个错误,因为我没有将任何 id 传递给它,如果我将任何 id 传递给它,那么它会显示 Undefined variable: upload。请帮帮我。我知道我现在已经发布了很多问题,后来我自己解决了,但我想这是唯一的学习方式。

控制器

 public function deleteSelectedUploads($id) {

    //$uploads = $this->upload->get($id);
    // $checkboxes = $this->request->input('checkbox[]');

    // if((Auth::user()->role=='admin')) {
    //     $this->upload->deleteUpload($id);
    // } else {
    //     Session::flash('message', "Oooopsss ... ! seems like you don't have the authority to 
    //     <span style=font-weight:bold;'><u>DELETE</u></span> this file.
    //     <span style='font-size:15pt; font-weight:bold;'> Contact ADMIN </span>");
    //     return redirect('home');
    // }

$checkbox = Input::all();

foreach($checkbox['checkbox'] as $id) {
    Upload::where('id', $id)->delete();
}

    Session::flash('message', 'You File has been deleted');
    return redirect('home');
 }

查看

<th><form action="/delete-selected-uploads" method="get">

      <input type="checkbox" name="checkbox" onClick="toggle(this)"/>
      <input type="submit" class="btn btn-block btn-success btn-xs" value="Delete all checked">
                    </form>
                  </center>
              </th>

             <td>
               <input type="checkbox" name="checkbox[]" id="{{ $upload['id'] }}" value="{{$upload['id']}}">
             </td>

路线

Route::get('/delete-selected-uploads', 'UploadController@deleteSelectedUploads');

【问题讨论】:

  • 请提供您的完整控制器功能,包括头部部分
  • 请打印输出'var_dump(Input::all()); ' 或将任何日志文件或打印屏幕与控制器中的输出一起放入
  • 我这里更新了控制器...
  • var_dump 不工作......它给出了同样的错误......它需要 id 来执行该方法......ErrorException in UploadController.php line 104: Missing argument 1 for App\Http\Controllers\UploadController::deleteSelectedUploads()
  • 我已经粘贴了下面的代码,我在其中定义了@foreach 来测试 input::all() 并且我在 array:1 [▼ "checkbox" =&gt; array:1 [▼ 0 =&gt; "76" ] ] 的所有内容上只有 1 个数组@

标签: laravel checkbox


【解决方案1】:

你的问题是你可能把参数放到

函数public function deleteSelectedUploads($id) {需要参数$id。

你调用这个函数避免::deleteSelectedUploads()

一种解决方案可以不要求$id参数为public function deleteSelectedUploads($id = '') {

更新:在视图中尝试:

<th>
<form action="/delete-selected-uploads" method="get">

      <input type="checkbox" name="checkbox" onClick="toggle(this)"/>
      <input type="submit" class="btn btn-block btn-success btn-xs" value="Delete all checked">
       <td>
            <input type="checkbox" name="checkbox[]" id="{{ $upload['id'] }}" value="{{$upload['id']}}">
        </td>
         </center> 
</th>
</form>

希望对你有帮助。

【讨论】:

  • 如果我没有得到 id,我应该如何从数据库中删除记录?
  • 我认为你把id的按参数引入$checkbox数组。
  • 我没有...代码与我在这里发布的相同...我没有将任何参数传递给复选框数组...我正在这样做$checkbox['checkbox'] 获取所有检查的上传...不属于参数?
  • 不,对不起我的英语。 $checkbox['checkbox'] 是你的参数。您可以将 deleteSelectedUploads 修改为 deleteSelectedUploads($id = null) 现在您可以在 $checkbox['checkbox'] 数组中获取所有 id。
  • 这里没有取id,在这部分代码&lt;form action="/delete-selected-uploads" method="get"&gt;
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多