@@ -1678,7 +1678,9 @@ protected function loadRelationCount(Collection $collection, string $relation, ?
16781678 $ relationType = $ firstModel ->getLastRelationType ();
16791679 $ relatedModel = $ firstModel ->getLastRelatedModel ();
16801680 $ foreignKey = $ firstModel ->getLastForeignKey ();
1681- $ localKey = $ firstModel ->getLastLocalKey ();
1681+ $ localKey = $ relationType === "bindToMany "
1682+ ? $ firstModel ->getKeyName ()
1683+ : $ firstModel ->getLastLocalKey ();
16821684
16831685 // Collect all local keys
16841686 $ localKeys = array_map (fn ($ model ) => $ model ->{$ localKey }, $ models );
@@ -1710,7 +1712,7 @@ protected function loadRelationCount(Collection $collection, string $relation, ?
17101712 // Set the count on each model
17111713 $ countAttribute = $ relation . '_count ' ;
17121714 foreach ($ models as $ model ) {
1713- $ key = $ model ->{ $ localKey } ;
1715+ $ key = $ model ->getKey () ;
17141716 $ model ->{$ countAttribute } = $ counts [$ key ] ?? 0 ;
17151717 }
17161718 }
@@ -1738,7 +1740,6 @@ protected function loadManyToManyCount(Collection $collection, string $relation,
17381740 $ foreignKey = $ firstModel ->getLastForeignKey ();
17391741 $ relatedKey = $ firstModel ->getLastRelatedKey ();
17401742 $ pivotTable = $ firstModel ->getLastPivotTable ();
1741- $ localKey = $ firstModel ->getLastLocalKey ();
17421743
17431744 $ relatedModelInstance = new $ relatedModel ();
17441745 $ relatedTable = $ relatedModelInstance ->getTable ();
@@ -1768,7 +1769,7 @@ protected function loadManyToManyCount(Collection $collection, string $relation,
17681769 // Set the count on each model
17691770 $ countAttribute = $ relation . '_count ' ;
17701771 foreach ($ models as $ model ) {
1771- $ key = $ model ->{ $ localKey } ;
1772+ $ key = $ model ->getKey () ;
17721773 $ model ->{$ countAttribute } = $ counts [$ key ] ?? 0 ;
17731774 }
17741775 }
0 commit comments