【问题标题】:Get a value from two tables从两个表中获取一个值
【发布时间】:2020-11-22 06:19:12
【问题描述】:

我正在尝试从 clubs 表中获取列“名称”的值。

第一桌:(俱乐部)

  • 身份证*
  • 姓名(我需要什么!!!)
  • 电子邮件
  • 密码

第二桌:(club_posts)

  • 身份证
  • club_id*
  • zip_id
  • 类别
  • 类型
  • 城市

控制器:

public function search(Request $request)
{
    $zip = $request->input('zip');

        $users = Post::where('zip_id', 'like', $zip)
                        ->orderBy('date')
                        ->paginate(25);

        $clubs = ClubPost::where('zip_id', 'like', $zip)
                        ->orderBy('updated_at')
                        ->paginate(25);

        $city = Zip::where('zip_code', 'like', $zip)
                        ->value('city');

这是我的查询:

        $names = Club::select('name')
                        ->leftJoin('club_posts', 'club_id', '=', 'clubs.id')
                        ->get();
        dd($names);
  
        return view('search.result', compact('users', 'clubs', 'city', 'names'));
    }

结果是一个有十个值的数组,但只需要一个。

【问题讨论】:

    标签: sql laravel join pdo


    【解决方案1】:

    您可以使用 groupBy 返回单个结果

    $names = Club::select('name')
                   ->leftJoin('club_posts', 'club_id', '=', 'clubs.id')
                   ->groupBy('name')
                   ->get();
    

    【讨论】:

      【解决方案2】:

      在您的 ClubPost 模型中创建一个关系俱乐部,以便您可以使用该关系访问该俱乐部帖子的俱乐部。

      ClubPost 模型

      public function club(){
         return $this->belongsTo(App\Club::class, 'club_id', 'id');
      }
      

      现在,如果您想访问俱乐部的名称(或任何其他属性) 以获取俱乐部帖子,您可以使用俱乐部关系。

      在您的刀片中,您将循环访问 $club_posts。

      @foreach($club_posts as $club_post)
      
          {{ $club_post->club->name }}
      @endforeach
      

      另外,在您的控制器中急切加载俱乐部关系。

      $club_posts = ClubPost::with('club')
                              ->where('zip_id', 'like', $zip)
                              ->orderBy('updated_at')
                              ->paginate(25);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-09
        • 2023-03-20
        • 1970-01-01
        • 2015-12-11
        • 2017-04-10
        • 1970-01-01
        相关资源
        最近更新 更多