php - 如何使用 Laravel Eloquant 分离许多元素
问题描述
我与表 Screen 和 Media 与数据透视表 Media_Screen 有多对多的关系。我想从数据透视表中删除 $id_screens 中具有屏幕 ID 的数据。
我确实喜欢这样:
$id_screens = [4,5];
$screens = App\Screen::whereIn('id', $id_screens)->get();
foreach($screens as $screen)
{
$screen->medias()->detach();
}
它有效,但我想知道是否没有更好的方法?我尝试过这样的事情,但没有奏效:
$id_screens = [4,5];
$screens = App\Screen::whereIn('id', $id_screens)->get();
$screens->medias()->detach();
解决方案
您可以尝试此处记录的“高阶消息” :
$id_screens = [4,5];
$screens = App\Screen::find($id_screens);
$screens->each->medias()->detach();
推荐阅读
- regex - 需要修复 perl 正则表达式以处理多种情况
- angular - 如何在 Angular 中使用正文读取 HTTP 删除中的响应状态代码?
- javascript - 在 HTTP 响应中发送大型 csv 文件类型文件
- android - 在从Activity调用的类中创建适配器时,如何访问Activity中的适配器?
- java - 我提到的 MPAndroidChart 值没有出现?
- wcf - 将 WCF 替换为具有关联协议的 gRPC
- sql - SQL Server 中的 Select 语句在使用 where 中的电子邮件获取值时返回 null;无法使用带点的值获取数据
- robotframework - 机器人框架 Telnet:EOFError:telnet 连接关闭
- java - cucumber.runtime.CucumberException:在其他设备上运行时无法实例化类
- java - 为什么使用 JUnit 5 运行此 Spring Data JPA 存储库测试会导致 ParameterResolutionException?