Skip to content

Commit 6b5acf2

Browse files
Merge pull request #251 from MasoniteFramework/fix/248
Fix/248
2 parents 2e75a3a + e3d1d14 commit 6b5acf2

File tree

3 files changed

+5
-3
lines changed

3 files changed

+5
-3
lines changed

src/masoniteorm/relationships/BelongsTo.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ def get_related(self, relation, eagers=()):
3535
if isinstance(relation, Collection):
3636
return builder.where_in(
3737
f"{builder.get_table_name()}.{self.foreign_key}",
38-
relation.pluck(self.local_key),
38+
relation.pluck(self.local_key).unique(),
3939
).get()
4040
else:
4141
return builder.where(
@@ -45,7 +45,7 @@ def get_related(self, relation, eagers=()):
4545

4646
def register_related(self, key, model, collection):
4747
related = collection.where(
48-
self.foreign_key, model.get_primary_key_value()
48+
self.foreign_key, getattr(model, self.local_key)
4949
).first()
5050

5151
model.add_relation({key: related or None})

src/masoniteorm/relationships/HasMany.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ def get_related(self, relation, eagers=[]):
2626
if isinstance(relation, Collection):
2727
return builder.where_in(
2828
f"{builder.get_table_name()}.{self.foreign_key}",
29-
relation.pluck(self.local_key),
29+
relation.pluck(self.local_key).unique(),
3030
).get()
3131
else:
3232
return builder.where(

tests/collection/test_collection.py

+2
Original file line numberDiff line numberDiff line change
@@ -298,6 +298,8 @@ def test_unique(self):
298298
],
299299
)
300300

301+
self.assertEqual(collection.pluck('name').unique().all(), ["Corentin All"])
302+
301303
def test_transform(self):
302304
collection = Collection([1, 1, 2, 3, 4])
303305
collection.transform(lambda x: x * 2)

0 commit comments

Comments
 (0)