Я запрашиваю модель с объединениями, которые не имеют NULL_at, но они все еще возвращают результаты.
Пример: posts таблица объединяет таблицу post_likes, обе с мягким удалением.
posts
post_likes
Posts::join( 'post_likes', 'post_id', '=', 'id' )->get();
Мой обходной путь - это проверка вручную в соединении, я бы предпочел, чтобы это было автоматически, поэтому я оставлю вопрос открытым.
Posts::join( 'post_likes', function ($join) use ($model) { $join->on( 'post_id', '=', 'id' ); if ($model->hasColumn('deleted_at')) { $join->whereNull('post_likes.deleted_at'); } } );