gpt4 book ai didi

mysql - 如何在 Laravel 中组合四个查询?

转载 作者:行者123 更新时间:2023-11-29 09:24:07 25 4
gpt4 key购买 nike

我的网站上有抽奖事件,为了参加抽奖,您需要每天执行一定的操作。有一个代码可以检查这一切:

    $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']);
}

此代码检查 4 个可能的表中是否存在用户记录。我在表 ets_1x1 中添加了一个条目,但仍然无法参与,因为该错误似乎在数据库中找不到我。我删除了所有表格,只留下 ets_1x1,我被接受进入绘图。

据我了解,该值是从最后一个请求中获取的。如何将一个查询合并为 1 个并检查这 4 个表?

更新:

我还尝试给变量赋予新名称并以不同的方式显示响应代码,现在所有人都可以参与绘图,即使是那些尚未满足条件的人,现在看起来:

    if(!empty($sta_1) || !empty($sta_2) || !empty($sta_3) || !empty($sta_4)) {
return response()->json(['status' => 'error', 'msg' => 'Error']);
}

我的错误在哪里?

最佳答案

该代码不起作用,因为:

  1. 第一段代码将仅评估最后一个请求(并且仅当最后一个表上存在任何现有用户时)。
  2. 第二段代码未正确计算,您正在 Laravel 集合上运行空函数。

你为什么不试试这个呢?我认为它应该有效:

$date = Carbon::now();
$userExists = false;
$tables = ['ets', 'ets_1x1', 'ets_low', 'ets_duel'];

foreach ($tables as $tableName) {
$result = \DB::table($tableName)
->where('user_id', $this->user->id)
->where('created_at', '>=', $date)
->get()
;
if ($result->isNotEmpty()) {
$userExists = true;
break;
}
}

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

关于mysql - 如何在 Laravel 中组合四个查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59897073/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com