Skip to content

Commit 1a23e8c

Browse files
authored
Document returned array shape for sync methods (#52070)
1 parent 9426f9a commit 1a23e8c

File tree

2 files changed

+6
-3
lines changed

2 files changed

+6
-3
lines changed

src/Illuminate/Database/Eloquent/Relations/Concerns/InteractsWithPivotTable.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ public function toggle($ids, $touch = true)
6767
* Sync the intermediate tables with a list of IDs without detaching.
6868
*
6969
* @param \Illuminate\Support\Collection|\Illuminate\Database\Eloquent\Model|array $ids
70-
* @return array
70+
* @return array{attached: array, detached: array, updated: array}
7171
*/
7272
public function syncWithoutDetaching($ids)
7373
{
@@ -79,7 +79,7 @@ public function syncWithoutDetaching($ids)
7979
*
8080
* @param \Illuminate\Support\Collection|\Illuminate\Database\Eloquent\Model|array $ids
8181
* @param bool $detaching
82-
* @return array
82+
* @return array{attached: array, detached: array, updated: array}
8383
*/
8484
public function sync($ids, $detaching = true)
8585
{
@@ -133,7 +133,7 @@ public function sync($ids, $detaching = true)
133133
* @param \Illuminate\Support\Collection|\Illuminate\Database\Eloquent\Model|array $ids
134134
* @param array $values
135135
* @param bool $detaching
136-
* @return array
136+
* @return array{attached: array, detached: array, updated: array}
137137
*/
138138
public function syncWithPivotValues($ids, array $values, bool $detaching = true)
139139
{

types/Database/Eloquent/Relations.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,9 @@ function test(User $user, Post $post, Comment $comment, ChildUser $child): void
7171
assertType('Illuminate\Database\Eloquent\Collection<int, Illuminate\Types\Relations\Role>', $user->roles()->saveManyQuietly($roles));
7272
assertType('array<int, Illuminate\Types\Relations\Role>', $user->roles()->saveManyQuietly($roles->all()));
7373
assertType('array<int, Illuminate\Types\Relations\Role>', $user->roles()->createMany($roles));
74+
assertType('array{attached: array, detached: array, updated: array}', $user->roles()->sync($roles));
75+
assertType('array{attached: array, detached: array, updated: array}', $user->roles()->syncWithoutDetaching($roles));
76+
assertType('array{attached: array, detached: array, updated: array}', $user->roles()->syncWithPivotValues($roles, []));
7477
assertType('Illuminate\Support\LazyCollection<int, Illuminate\Types\Relations\Role>', $user->roles()->lazy());
7578
assertType('Illuminate\Support\LazyCollection<int, Illuminate\Types\Relations\Role>', $user->roles()->lazyById());
7679
assertType('Illuminate\Support\LazyCollection<int, Illuminate\Types\Relations\Role>', $user->roles()->cursor());

0 commit comments

Comments
 (0)