在 $get_user
和 $get_code
查询中,它们都有一个 group_id。
我有 dd();他们都做了 100% 的确定。
$get_user
查询有多个 group_id,而 $get_code
只有一个 group_id
等于 $ 之一get_user
group_id 的。
目前的目标是创建一个 group_id
匹配查询。
获取组 ID 等于 $get_user
group_id 之一的代码
public function getCodesViewQr($code_id)
{
$userid = Auth::id();
$get_user = GroupUser::all()->where('user_id',$userid);
$get_code = Code::all()->where('id',$code_id);
$group_match = GroupUser::where('group_id', $get_code->group_id);
$view['get_users'] = $get_user;
$view['get_codes'] = $get_code;
$view['group_matchs'] = $group_match;
return view('codes.view_qr_code', $view);
}
组匹配查询不起作用。 $get_code->group_id
获取不到code group_id。
如果有匹配则设置 $match
等于 rue。否则 $match
为假
$group_match = GroupUser::where('group_id', $get_code->group_id);
我正在使用两个模型 Code
和 GroupUser
我的代码
表是这样的:
-id
-group_id (这是目前唯一重要的)
-代码类型
我的 GroupUser
表是这样的:
-id
-group_id (这是目前唯一重要的)
-user_id
-用户角色
我已经链接了模型
在我的代码模型中,我与 GroupUser 有关系
public function group_user()
{
return $this->belongsto('App\GroupUser');
}
在我的 GroupUser 模型中,我与代码有关系
public function code()
{
return $this->belongsto('App\Code');
}
在我的代码 Controller 中,我包含了我的模型。
use App\Code;
use App\GroupUser;
最佳答案
大家好,我从一个共事的人那里得到了一些帮助,这就是他想出的解决方案。我们做了一些调整。所有数据库和结果都保持不变。我们只是改变了用于获取结果的方法。
非常感谢@ linktoahref 提供的所有帮助
public function view_code($random)
{
$code = Code::where('random', $random)->first();
$view['code'] = $code;
if ($code->code_type == 1)
{
// Its a coupon
if (!empty(Auth::user()))
{
// Someones is logged in
$user = Auth::user();
$view['user'] = $user;
$user_groups = GroupUser::where('user_id',$user->id)->pluck('group_id')->toArray();
if (in_array($code->group_id, $user_groups))
{
// The user is an admin of this code
return view('view_codes.coupon_admin', $view);
}else
{
// Save the code to that users account
return view('view_codes.generic_code', $view);
}
}else
{
// Anon
return view('view_codes.coupon_anon', $view);
}
}elseif ($code->code_type == 2)
{
// Voucher..
}else
{
// We don't know how to deal with that code type
}
}
关于php - 比较 laravel 查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48444490/