【问题标题】:How to store a group of fields in a variable after a ->get() query如何在 ->get() 查询后将一组字段存储在变量中
【发布时间】:2019-07-11 16:13:19
【问题描述】:

以下是我的查询,它可能输出多于一行。我需要将 user_id 字段存储在下面 $send_user_id 变量的每一行中,以便在刀片中使用 foreach 循环。我目前收到(尝试获取非对象的属性)错误。

$j_request = DB::table('grpusrs')
            ->join('users', 'users.id', '=', 'grpusrs.user_id')
            ->join('groups', 'grpusrs.group_id', '=', 'groups.id')
            ->where('groups.owner_id', $user_id)
            ->where('grpusrs.join_request', 1)
            ->get();

      $send_user_id = $j_request->user_id;

此外,此查询连接两个表,那么如何指定具有必填字段的表? (即我想要在 'Grpusrs' 表中的 user_id 而不是在 'Groups' 表中)

【问题讨论】:

  • 而不是get try ->first();

标签: php laravel


【解决方案1】:

如果您需要检索多个user_id,您可以遍历$j_request 对象并收集数组中的每个user_id

$j_request = DB::table('grpusrs')
            ->join('users', 'users.id', '=', 'grpusrs.user_id')
            ->join('groups', 'grpusrs.group_id', '=', 'groups.id')
            ->where('groups.owner_id', $user_id)
            ->where('grpusrs.join_request', 1)
            ->select('users.*', 'contacts.phone', 'orders.price')
            ->get();

$send_user_id = [];

$j_request->each(function($item) use ($send_use_id){
    $send_user_id[] = $item->user_id;
});

如果您只需要一个user_id,您应该在查询中更加“精确”(只获得一条记录)。之后,您只需使用$j_request->user_id即可获得user_id

【讨论】:

  • 我收到此错误:ProfileController.php 第 52 行中的 FatalThrowableError:调用数组上的成员函数 map()
  • 您确定要循环 $j_request 集合吗?无论如何,使用每个方法而不是 map。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-07
  • 1970-01-01
  • 1970-01-01
  • 2017-12-10
相关资源
最近更新 更多