在查询$get_user和$get_code查询中,他们都有一个group_id.
我有dd(); 他们两个并且100%肯定.
该$get_user查询有多个GROUP_ID的和$get_code只有一个group_id这等于一个$get_userGROUP_ID的.
目前的目标是创建group_id匹配查询.
获取组ID等于$get_usergroup_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);
}
Run Code Online (Sandbox Code Playgroud)
组匹配查询不起作用. $get_code->group_id没有得到代码group_id.
如果有匹配则设置$match等于rue.否则$match是假的
$group_match = GroupUser::where('group_id', $get_code->group_id);
Run Code Online (Sandbox Code Playgroud)
我正在使用两个模型Code和GroupUser
我的Code桌子是这样的:
-ID
-group_id (This is the only on important right now)
-code_type
我的GroupUser桌子是这样的:
-ID
-group_id (This is the only on important right now)
-用户身份
-user_role
我已将模型链接起来
在我的代码模型中,我与GroupUser有关系
public function group_user()
{
return $this->belongsto('App\GroupUser');
}
Run Code Online (Sandbox Code Playgroud)
在我的GroupUser模型中,我与Code有关系
public function code()
{
return $this->belongsto('App\Code');
}
Run Code Online (Sandbox Code Playgroud)
在我的代码控制器里面我已经包含了我的模型
use App\Code;
use App\GroupUser;
Run Code Online (Sandbox Code Playgroud)
大家好,我从一个和我一起工作的人那里得到了一些帮助,这是他想出的解决方案。我们做了一些调整。所有数据库和结果保持不变。我们只是改变了获取结果的方法。
我真的很感谢@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
}
}
Run Code Online (Sandbox Code Playgroud)