一个用户奇怪地出现两个链接 - Laravel 模型

Two links appears for one user weirdly - Laravel models

我的用户和钱包模型之间存在多对多关系。

钱包型号

public function users() 
{
    return $this->belongsToMany(User::class, 'user_wallet', 'user_id', 'wallet_id');
}

用户模型

public function wallets() 
{
    return $this->belongsToMany(Wallet::class, 'user_wallet', 'user_id', 'wallet_id')->withPivot('balance');;
}

然后在我的 Blade 文件中,我尝试了以下内容。

@forelse($user->wallets as $wallet)
    <tr>
        <td>
            {{ $wallet->name }}
        </td>
        <td>
            {{ $wallet->pivot->balance }}
        </td>
    <td>
        <a href="{{ route('user.WalletTransaction', ['walletId'=>$wallet->id,'userId'=>$user->id]) }}" class="fa fa-exchange text-dark mt-1" />
    </td>
</tr>
@empty
    <td colspan="5" class="text-center">No wallet exist</td>
@endforelse

它工作正常,但问题是,它在一个用户的 table 中显示两个 link。但是,它应该显示一个。

如果我这样做:

@forelse($user->wallets as $wallet)
   {{ count(array($user)) }}
@empty
    <td colspan="5" class="text-center">
        No wallet exist
    </td>
@endforelse

结果将是 1

问题来自 link 的 'userId' => $user->id。因为如果我删除它,只会出现1 link,这是正确的。但是,我确实需要 userId 并且不知道如何将其传递到路由名称中。

那么这里出了什么问题?我需要每个用户一个link,我不知道为什么它打印两个。

@forelse($user->wallets as $wallet)
    <tr>
        <td>
            {{ $wallet->name }}
        </td>
        <td>
            {{ $wallet->pivot->balance }}
        </td>
    <td>
        <a href="{{ route('user.WalletTransaction', ['walletId'=>$wallet->id,'userId'=>$user->id]) }}" class="fa fa-exchange text-dark mt-1" />
    </td>
</tr>
@empty
    <td colspan="5" class="text-center">No wallet exist</td>
@endforelse`

不是每个用户关联的所有钱包中的 $user->wallets returns collection?

也许您需要检查是否有任何用户拥有多个钱包,或者如果您只想显示一个钱包,您可以使用 $user->wallets[0] 来显示第一个钱包模型,因为它是 collection