@@ -71,9 +71,9 @@ protected function fillRelations(ItemInterface $item, array $attributes)
7171
7272 // It is a valid relation
7373 if ($ relation instanceof HasOneRelation) {
74- $ this ->hydrateHasOneRelation ($ item , $ attributes , $ relation , $ availableRelation );
74+ $ this ->hydrateHasOneRelation ($ attributes , $ relation , $ availableRelation );
7575 } elseif ($ relation instanceof HasManyRelation) {
76- $ this ->hydrateHasManyRelation ($ attributes , $ availableRelation , $ relation );
76+ $ this ->hydrateHasManyRelation ($ attributes , $ relation , $ availableRelation );
7777 } elseif ($ relation instanceof MorphToRelation) {
7878 $ this ->hydrateMorphToRelation ($ attributes , $ relation , $ availableRelation );
7979 } elseif ($ relation instanceof MorphToManyRelation) {
@@ -101,26 +101,21 @@ protected function getRelationFromItem(ItemInterface $item, string $availableRel
101101 }
102102
103103 /**
104- * @param \Swis\JsonApi\Client\Interfaces\ItemInterface $item
105104 * @param array $attributes
106105 * @param \Swis\JsonApi\Client\Relations\HasOneRelation $relation
107106 * @param string $availableRelation
108107 *
109108 * @throws \InvalidArgumentException
110109 */
111- protected function hydrateHasOneRelation (
112- ItemInterface $ item ,
113- array $ attributes ,
114- HasOneRelation $ relation ,
115- string $ availableRelation
116- ) {
110+ protected function hydrateHasOneRelation (array $ attributes , HasOneRelation $ relation , string $ availableRelation )
111+ {
117112 if (is_array ($ attributes [$ availableRelation ])) {
118113 $ relationItem = $ this ->buildRelationItem ($ relation , $ attributes [$ availableRelation ]);
119- $ relation ->associate ($ relationItem );
120114 } else {
121- $ relation ->setId ($ attributes [$ availableRelation ]);
122- $ item ->setAttribute ($ availableRelation .'_id ' , $ attributes [$ availableRelation ]);
115+ $ relationItem = $ this ->buildRelationItem ($ relation , ['id ' => $ attributes [$ availableRelation ]]);
123116 }
117+
118+ $ relation ->associate ($ relationItem );
124119 }
125120
126121 /**
@@ -130,7 +125,7 @@ protected function hydrateHasOneRelation(
130125 *
131126 * @throws \InvalidArgumentException
132127 */
133- protected function hydrateHasManyRelation (array $ attributes , string $ availableRelation , HasManyRelation $ relation )
128+ protected function hydrateHasManyRelation (array $ attributes , HasManyRelation $ relation , string $ availableRelation )
134129 {
135130 foreach ($ attributes [$ availableRelation ] as $ relationData ) {
136131 if (is_array ($ relationData )) {
0 commit comments