Присоединяйтесь к Query в laravel, чтобы не сообщать о злоупотреблениях

Я пытаюсь создать соединение между двумя таблицами, чтобы избежать использования сообщений о злоупотреблениях в списке пользователей, что я делаю, приведено ниже:

Что у меня есть У меня 2 таблицы, которые

Таблица пользователей

id |  name  |  
1  |  testA | 
2  |  testB |
3  |  testC |
4  |  testD |
5  |  testE |

report_abuse Таблица

id | reported_by|  reported_to
1  | 1          |  2
2  | 1          |  3 

теперь мне нужно, когда я запрашиваю, я должен получить только 2 записи 4 и 5

Что я сделал Я создаю запрос для получения указанных выше записей:

DB::table('users as U')
->select('U.id','U.name')
->where('U.id', '!=', auth()->user()->id)
->leftJoin('report_abuse as RA', 'RA.reported_by', '=', 'U.id')
->where('RA.reported_by', '=', auth()->user()->id)
->where('RA.reported_to', '!=', 'U.id')
->orderBy('U.id', 'desc')
->paginate(10);

Я здесь что-то делаю не так, поэтому не получаю должных результатов.

Ребята, не могли бы вы помочь мне, очень признателен.

Спасибо

Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
0
53
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Насколько я понимаю, вам нужен список пользователей, за исключением тех, о которых он сообщил и его самого.

вот решение

$authId = auth()->user()->id;
DB::table('users as U')
    ->select('U.id','U.name')
    ->where('U.id', '!=', $authId)
    ->leftJoin('report_abuse as RA', function ($report) use ($authId){
        $report->on('reported_to', '=', 'U.id')
            ->where('reported_by', '=', $authId);
    })
    ->whereNull('reported_to')
    ->orderBy('U.id', 'desc')
    ->paginate(10);

Другие вопросы по теме