Laravel批量分离

西德实验室

首先,我detach()在laravel中使用这种方法,这是可行的!

$student = \App\StudentRegistrars::withTrashed()->findOrFail($id);
$student->father_registrars()->detach();
$student->mother_registrars()->detach();  

但是,当我试图在laravel中大规模分离时,我无法做到这一点。

$students = \App\StudentRegistrars::whereIn('id', $ids);
$student->father_registrars()->detach();
$student->mother_registrars()->detach(); 

关于这个问题有什么解决方案吗?

蒂姆·刘易斯

您的代码有很多问题。您已经接近,但还没到那儿。

首先,您需要了解变量是什么。目前,这是行不通的,$student未定义。您调用了变量$students(带有“ s”),因此请确保使用正确的变量。

其次,在您要调用的时候detach(),您的$students变量是Builder该类的一个实例,而不是单个StudentRegistrars实例。您需要使用来结束查询closure

$students = \App\StudentRegistrars::whereIn('id', $ids)->get();

第三,该detach()方法仅适用于单个实例,因此,如果调用$students->father_registrars()->detach(),它仍然会失败。

您需要对结果进行迭代,然后detach()一个接一个地调用

foreach ($students as $student) {
  $student->father_registrars()->detach();
  $student->mother_registrars()->detach(); 
}

因此,您的最终代码为:

$students = \App\StudentRegistrars::whereIn('id', $ids)->get();
foreach ($students as $student) {
  $student->father_registrars()->detach();
  $student->mother_registrars()->detach(); 
}

有更有效的方法来进行大规模分离,例如直接查询数据表或从数据透视表中删除记录:

DB::table('pivot')->whereIn('column', $ids)->delete();

但这答案可以解决您的逻辑问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Laravel 5.1与哪里分离

来自分类Dev

laravel中的后端/前端分离

来自分类Dev

laravel中的后端/前端分离

来自分类Dev

检测是否附加或分离 Laravel

来自分类Dev

Laravel多态关系分离和删除

来自分类Dev

Laravel分离无法在belongsToMany上工作

来自分类Dev

Laravel 5.8同步/附加/分离事件

来自分类Dev

更新Laravel ManyToMany关系而不删除(或分离)

来自分类Dev

多对多关系中的条件分离laravel

来自分类Dev

与用户分离角色,并与Livewire特征一起批量删除用户

来自分类Dev

管理员的Laravel批量分配

来自分类Dev

在Laravel 4中批量保存记录?

来自分类Dev

如何在laravel 4中批量更新

来自分类Dev

Laravel批量分配安全策略

来自分类Dev

Laravel中的批量更新密码

来自分类Dev

如何在laravel中批量保存列表?

来自分类Dev

Laravel批量分配安全策略

来自分类Dev

在Laravel 4中批量保存记录?

来自分类Dev

管理员的Laravel批量分配

来自分类Dev

Laravel中的批量更新密码

来自分类Dev

批量插入时的Laravel Saving事件

来自分类Dev

使用同步在Laravel中的数据透视表中分离

来自分类Dev

如何使用分离的vue前端检索Laravel CSRF令牌

来自分类Dev

Laravel选择optgroup并从数据库中分离值

来自分类Dev

Laravel 5.4 在删除时从数据透视表中分离记录

来自分类Dev

Laravel批量分配问题似乎不一致

来自分类Dev

如何在Laravel批量更新中使用变子?

来自分类Dev

Laravel 4处理批量分配并获取每个lastInsertedId?

来自分类Dev

在laravel中的[App \ comment]上进行批量分配