使用 laravel 7 我试图选择一个项目记录,只要该记录 id 没有出现在另一个表中,但只要另一个表中的 id 伴随着用户 id
Item table
id
item name
Banned Items
ItemID
UserID
编辑 1 如果一个项目被禁止,它被添加到禁止项目表中,该表存储项目 ID 和用户 ID,当我加载项目时,我需要排除出现在禁止项目表中的项目,但仅限于被禁止的用户< /p>
Items table
1 Apple
2 Pear
Banned Items
1 1
1 2
Users
1 username1 password1
2 username2 password2
因此,如果该项目被该用户禁止,请不要选择该项目。我正在努力做到这一点。谢谢
答案 0 :(得分:1)
我不明白你是如何在被禁物品和用户之间建立关系的,但你需要这种关系。所以我假设banned_items表上的列是
id, user_id, item_id
$bannedItems = BannedItem::where('user_id', Auth::id())->get()->pluck('id');
// If you don't have a model for pivot table:
$bannedItems = DB::table('banned_items')->where('user_id', Auth::id())->get()->pluck('id');
$items = Item::whereNotIn('id', $bannedItems)->get();
应该返回未被当前用户禁止的项目。