从两个表中获取值

jhiyze9q  于 2021-07-26  发布在  Java
关注(0)|答案(2)|浏览(414)

我正在尝试从clubs表中获取列“name”的值。
第一桌:(俱乐部)
身份证*
姓名(我需要的!!!)
电子邮件
密码
第二张table:(俱乐部俱乐部)
身份证件
俱乐部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'));
    }

结果是一个包含10个值的数组,但只需要一个值。

kknvjkwl

kknvjkwl1#

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

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

现在,如果您想访问俱乐部的名称(或任何其他属性)以获取俱乐部帖子,您可以使用俱乐部关系。
在你的刀刃上,你会在$club\u的柱子上循环。

@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);
yjghlzjz

yjghlzjz2#

可以使用groupby返回单个结果

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

相关问题