artyak
artyak

Reputation: 17

How to combine query in laravel?

I have draws on my site, in order to take part in the draw, you need to do a certain action per day. And there is a code that checks it all:

    $date = Carbon::today();
    $sta = \DB::table('ets')->where('user_id', $this->user->id)->where('created_at', '>=', $date)->get();
    $sta = \DB::table('ets_1x1')->where('user_id', $this->user->id)->where('created_at', '>=', $date)->get();
    $sta = \DB::table('ets_low')->where('user_id', $this->user->id)->where('created_at', '>=',$date)->get();
    $sta = \DB::table('ets_duel')->where('user_id', $this->user->id)->where('created_at', '>=', $date)->get();

if ($sta == NULL) {
                return response()->json(['status' => 'error', 'msg' => 'Error']);
            }

This code checks if there is a user record in 4 possible tables. I made an entry in the table ets_1x1, but still I can’t take part, because the error seemed to not find me in the database. I removed all the tables and left only ets_1x1 and I was accepted into the drawing.

As I understand it, the value is taken from the last request. How can I combine a query into 1 and do a check on these 4 tables?

Upvotes: 0

Views: 44

Answers (1)

Yogesh Sharma
Yogesh Sharma

Reputation: 61

Try to create relations on user model and do something like this

$user=User::with(['ets','ets_1x1','ets_low','ets_duel'])->find($this->user->id);

Upvotes: 2

Related Questions