删除多条记录(Laravel)

时间:2017-11-07 20:18:13

标签: html laravel

我想使用复选框一次删除多条记录。我的代码无效。

我的HTML

   @foreach($userallergens as $aller)
                     <input type="hidden" name="ua_id" value="{{$aller->ua_id}}">
                     <input type="checkbox" class="allergies" name="allergen[]" value="{{$aller->ua_id}}">
                      {{ $aller->allergen_name}}</label>
                       <label>Tolerance Level:<b>{{$aller->tolerance_level}}</b></label><br>

              @endforeach

我的控制器

 public function destroy(Request $request){
  $id=Auth::user()->id;
  $uaid=UserAllergen::where('ua_id', $request['ua_id'])->get();
 if (is_array($id)) 
    {
        UserAllergen::destroy($uaid);
    }
    else
    {
       UserAllergen::where('ua_id', $uaid)->delete();
    }



 return redirect()->route('user.profile', compact('user', 'id'));
}

3 个答案:

答案 0 :(得分:1)

ua_id应该是ua_id []所以表单将其作为一个数组发布,你是否适合过敏原

首先出现一些错误:

$id=Auth::user()->id;

if (is_array($id)) 

由于用户ID始终是非数组值

,因此永远不会起作用

然后您需要对代码进行一些更改

同时更改此

UserAllergen::where('ua_id', $uaid)->delete();

到此

UserAllergen::whereIn('ua_id', $uaid)->delete();

除非ua_id是你的主键,否则我会避免使用destroy,因为它基于表主键(通常是id),你可以改为使用

UserAllergen::where('ua_id', $uaid)->delete();

但是,如果它是你的表的PK,你可以在数组的情况下使用destroy以及将你的代码简化为

public function destroy(Request $request){
  $uaid = $request->get('ua_id'); // array

  UserAllergen::destroy($uaid);


 return redirect()->route('user.profile', compact('user', 'id'));
}

public function destroy(Request $request){
  $uaid = $request->get('ua_id'); // array

  UserAllergen::whereIn('ua_id', $uaid)->delete();

 return redirect()->route('user.profile', compact('user', 'id'));
}

答案 1 :(得分:1)

在Laravel 5.8中删除多行(记录):

$rowIds = "1,3,5";
$Rowsdeleted = explode(",", $rowIds);
foreach($Rowsdeleted as $rowId) {
    $response = YourModelName::where('id',"=",$rowId)->delete();
}

答案 2 :(得分:0)

在控制器中使用

public function destroy(Request $request){


$uaid = $request->get('ua_id'); // array

UserAllergen::whereIn('ua_id', $uaid)->delete();

return redirect()->route('user.profile', compact('user', 'id'));

}
  

当你带有那个id的数组时