Database 拉威尔物体相互作用

Database 拉威尔物体相互作用,database,laravel,laravel-blade,Database,Laravel,Laravel Blade,这些是我的桌子。用户和俱乐部之间的多对多关系 User Table Club Table ClubUser Table with User_id and Club_id 我在每个俱乐部上循环,我想检查用户是否请求加入俱乐部。如果已应用,则会出现“撤消”按钮,否则会出现“应用”按钮 问题是当我获得所有俱乐部时,它也会获得所有相关用户。所以循环时我有多个按钮。我如何做我将其限制为登录的用户,因此它只显示他单击的内容 我的控制器 public function index() {

这些是我的桌子。用户和俱乐部之间的多对多关系

User Table 
Club Table
ClubUser Table with User_id and Club_id
我在每个俱乐部上循环,我想检查用户是否请求加入俱乐部。如果已应用,则会出现“撤消”按钮,否则会出现“应用”按钮

问题是当我获得所有俱乐部时,它也会获得所有相关用户。所以循环时我有多个按钮。我如何做我将其限制为登录的用户,因此它只显示他单击的内容

我的控制器

    public function index()
{
    $clubs = club::with('user')->get();
    return view('clubs/index', compact('clubs'));
}
我的看法

       @foreach($clubs as $club)

            <div class="club-apply">

                @forelse($club->user as $user)
                   <!-- Withdraw button here -->
                    @if($user->pivot->user_id == Auth::user()->id)
                        <form method="POST" action="{{route('clubs.withdraw', $club->id )}}">
                            @method('delete')
                            @csrf
                            <input type="hidden" name="club_id" value="{{$club->id}}">
                            <button type="submit" class="uk-button uk-button-secondary">Withdraw</button>
                        </form>
                    @else

                    @endif

                    @empty
                         <!-- Apply button here -->
                        <form method="POST" action="{{route('clubs.apply', Auth::user()->id)}}">
                            @method('put')
                            @csrf
                            <input type="hidden" name="club_id" value="{{$club->id}}">
                            <button type="submit" class="uk-button uk-button-primary">Apply</button>
                        </form>

                @endforelse

       @endforeach
@foreach($clubs作为$club)
@forelse($club->user as$user)
@如果($user->pivot->user\u id==Auth::user()->id)
@方法('delete')
@csrf
撤退
@否则
@恩迪夫
@空的
@方法('put')
@csrf
申请
@endforelse
@endforeach

在您的控制器中,您正在抓取所有俱乐部,而我认为您只是想抓取登录的用户并获取他们的所有俱乐部?如果是这样的话,你可以这样做

$clubs=Auth:user()->clubs

return视图('clubs/index',compact('clubs')


你可以做到这一点,因为你有一个多对多的关系。

你可以在获得所有俱乐部时添加一个附加条款。这可以通过以下方法实现:

$userId = 'something';

$clubs = club::whereHas('user', function($query)
{
    $query->where('user_id', $userId);

})->get();
有你在';在你看来,你不需要筛选俱乐部。通过删除@forelse