从具有两个where子句的表中获取所有记录,然后在laravel

时间:2019-09-25 23:21:10

标签: php laravel query-builder

我想从具有两个where子句的表中获取所有列记录,然后将每个列分配给一个变量以在某处调用。我已经尝试过了,但是调试错误日志文件

中有错误

方法:

$user_match = MemberExtra::where('left_bv', '>=', 1)->where('right_bv', '>=', 1);
$user1 = $user_match->user_id;
$ref_id = $user1->referrer_id;
$ref_user = User::find($ref_id);

$user1 = $user_match->user_id;
$ref_id = $user1->referrer_id;
$ref_user = User::find($ref_id);

$ll_logg = LendingLog::where('user_id', $user1);

错误:

  

未定义的属性:Illuminate \ Database \ Eloquent \ Builder :: $ user_id

第二个错误:

  

此集合实例上不存在属性[user_id]。

此错误出现在第二行:

$user1 = $user_match->user_id; ///here is the  error 

我在做什么错?

2 个答案:

答案 0 :(得分:0)

您要调用user_id,它是model object实例或query builder实例上collection的属性,您需要使用{来获取实际对象例如{1}}

first()

Read The Friendly Manual

答案 1 :(得分:0)

$user_match = MemberExtra::where([['left_bv', '>=', 1], ['right_bv', '>=', 1]])
  ->get()
  ->map(function($user_match) {
    return [
      'user_id' => $user_match->id,
      'ref_id'  => $user_match->referrer_id,
    ]
  });