2016-09-26 10 views
0

こんにちは私はユーザーがチェックしているデータベースからすべての行を削除したいと思いますが、私はこのエラーが発生するたびに"Missing argument 1 for App\Http\Controllers\UploadController::deleteSelectedUploads()"を取得します。私はそれにIDを渡さなかったので、なぜこのエラーが来るのか知っています。私はIDを渡すとUndefined variable: uploadと言います。私を助けてください。私は最近、たくさんの質問を投稿して、それを自分で解決していることを知っていますが、これが私が推測する唯一の方法です。laravel

コントローラ

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', '[email protected]'); 
+0

ヘッド部を含む完全なコントローラ機能を提供してください –

+0

出力を出力してください。 'var_dump(Input :: all()); 'またはコントローラーにその出力を含むログファイルまたはプリントスクリーンを挿入します –

+0

ここでコントローラーを更新しました... –

答えて

1

あなたの問題は、あなたが多分public function deleteSelectedUploads($id) {それが必要

機能にパラメータを置くということですパラメータ$ id。

そして、あなたは::deleteSelectedUploads()を避けるようにこの関数を呼び出します。ビューで試してみてください:

<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> 

私はあなたが助けを願っています

一つの解決策は、public function deleteSelectedUploads($id = '') {

UPDATEとしての$ idパラメータをrequeridない置くことができます。

+0

の行にある 'foreach()'の引数が無効です。どうすればtを削除するのでしょうか?彼はIDを取得しない場合、データベースから記録する? –

+0

私はあなたがIDのパラメータをintro $ checkbox配列で入れていると思います。 –

+0

私はここに掲載したコードと同じです...私はチェックボックス配列にパラメータを渡していません...私はこの '$ checkbox ['checkbox']'を実行して、チェックされたアップロード...それはパラメータの下に来ませんか? –