首页 > 解决方案 > 如何使用 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();

标签: phplaravel

解决方案


您可以尝试此处记录的“高阶消息” :

$id_screens = [4,5];
$screens = App\Screen::find($id_screens);
$screens->each->medias()->detach();

推荐阅读