Как использовать, где условие с запросом на присоединение в Laravel - PullRequest
1 голос
/ 04 марта 2020

Подскажите, пожалуйста, как мне использовать несколько запросов на соединение с несколькими условиями условия where в laravel.

Я должен отключить использование функций из таблиц, таких как: - мое имя таблицы calllog здесь существуют записи о вызовах пользователей и другая таблица с именем disableapp , поэтому, если статус пользователя равен 1, отображаются записи данных или если отключено 0 данных, я делаю это с помощью Joinquery.

My Код

$callrecordings = DB::table('callrecordings')
    ->join('users', 'users.id', '=', 'callrecordings.user_id')
    ->leftJoin('disableapp', 'callrecordings.user_id', '=', 'disableapp.user_id')
    ->select('callrecordings.*', 'users.expiry_date')
    ->where('callrecordings.user_id', '=', $user_id)
    ->where('disableapp.status', '=', 1)
    ->get();



if($callrecordings[0]->expiry_date <= Carbon::now()->toDateTimeString()){
    return response()->json(['status'=>'Package Expired Sorry!', 'data'=>'']);
} else{
    return $this->sendResponse($callrecordings->toArray(), 'Call Recordings retrieved successfully');   
} 

[! [Введите описание изображения здесь] [1]] [1] [! [Введите описание изображения здесь] [2]] [2]

Мне нужно только, если отключить отключение таблицы, затем список данных пользователя отображается в записях, и если их статус равен 0, то он скрывается, а если 1, то он будет отображаться. Пользователь может сделать это, но в первый раз это будет показано в записях.

Как только я использую

orwhere('disableapp.status', '=', Null)

, но это не решило мою проблему, пожалуйста, предложите мне решение

Заранее спасибо

1 Ответ

0 голосов
/ 04 марта 2020

Решает ли это проблему? Если вы хотите сгруппировать ваши where и orWheres, используйте функцию в качестве параметра

$callrecordings = DB::table('callrecordings')
    ->join('users', 'users.id', '=', 'callrecordings.user_id')
    ->leftJoin('disableapp', 'callrecordings.user_id', '=', 'disableapp.user_id')
    ->select('callrecordings.*', 'users.expiry_date')
    ->where('callrecordings.user_id', '=', $user_id)
    ->where(function($q){
        $q->where('disableapp.status', '=', 1)
            ->orWhereNull('disableapp.status');
    })
    ->get();



if($callrecordings[0]->expiry_date <= Carbon::now()->toDateTimeString()){
    return response()->json(['status'=>'Package Expired Sorry!', 'data'=>'']);
} else{
    return $this->sendResponse($callrecordings->toArray(), 'Call Recordings retrieved successfully');   
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...