比较laravel查询结果

5 php mysql laravel

在查询$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)

我正在使用两个模型CodeGroupUser

我的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)

Est*_*bel 0

大家好,我从一个和我一起工作的人那里得到了一些帮助,这是他想出的解决方案。我们做了一些调整。所有数据库和结果保持不变。我们只是改变了获取结果的方法。

我真的很感谢@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)