@@ -60,6 +60,8 @@ protected function batchStoreWithTransaction(Request $request, $parentKey)
6060
6161 $ requestedRelations = $ this ->relationsResolver ->requestedRelations ($ request );
6262
63+ $ entityQuery = $ this ->buildStoreFetchQuery ($ request , $ parentEntity , $ requestedRelations );
64+
6365 foreach ($ resources as $ resource ) {
6466 /** @var Model $entity */
6567 $ entity = new $ resourceModelClass ;
@@ -75,10 +77,12 @@ protected function batchStoreWithTransaction(Request $request, $parentKey)
7577 Arr::get ($ resource , 'pivot ' , [])
7678 );
7779
78- $ entity = $ this ->newRelationQuery ($ parentEntity )->where (
79- $ this ->resolveQualifiedKeyName (),
80+ $ entity = $ this ->runStoreFetchQuery (
81+ $ request ,
82+ $ entityQuery ,
83+ $ parentEntity ,
8084 $ entity ->{$ this ->keyName ()}
81- )-> first () ;
85+ );
8286 $ entity ->wasRecentlyCreated = true ;
8387
8488 $ entity = $ this ->cleanupEntity ($ entity );
@@ -194,6 +198,8 @@ protected function batchUpdateWithTransaction(Request $request, $parentKey)
194198 $ query = $ this ->buildBatchUpdateFetchQuery ($ request , $ parentEntity , $ requestedRelations );
195199 $ entities = $ this ->runBatchUpdateFetchQuery ($ request , $ query , $ parentEntity );
196200
201+ $ entityQuery = $ this ->buildUpdateFetchQuery ($ request , $ parentEntity , $ requestedRelations );
202+
197203 foreach ($ entities as $ entity ) {
198204 /** @var Model $entity */
199205 $ this ->authorize ($ this ->resolveAbility ('update ' ), [$ entity , $ parentEntity ]);
@@ -213,10 +219,9 @@ protected function batchUpdateWithTransaction(Request $request, $parentKey)
213219 Arr::get ($ resource , 'pivot ' , [])
214220 );
215221
216- $ entity = $ this ->newRelationQuery ($ parentEntity )->where (
217- $ this ->resolveQualifiedKeyName (),
218- $ entity ->{$ this ->keyName ()}
219- )->first ();
222+ $ entity = $ this ->runUpdateFetchQuery (
223+ $ request , $ entityQuery , $ parentEntity , $ entity ->{$ this ->keyName ()}
224+ );
220225
221226 $ entity = $ this ->cleanupEntity ($ entity );
222227
@@ -395,6 +400,8 @@ protected function batchDestroyWithTransaction(Request $request, $parentKey)
395400 $ query = $ this ->buildBatchDestroyFetchQuery ($ request , $ parentEntity , $ requestedRelations , $ softDeletes );
396401 $ entities = $ this ->runBatchDestroyFetchQuery ($ request , $ query , $ parentEntity );
397402
403+ $ entityQuery = $ this ->buildStoreFetchQuery ($ request , $ parentEntity , $ requestedRelations );
404+
398405 foreach ($ entities as $ entity ) {
399406 /** @var Model $entity */
400407 $ this ->authorize ($ this ->resolveAbility ($ forceDeletes ? 'forceDelete ' : 'delete ' ), [$ entity , $ parentEntity ]);
@@ -403,11 +410,11 @@ protected function batchDestroyWithTransaction(Request $request, $parentKey)
403410
404411 if (!$ forceDeletes ) {
405412 $ this ->performDestroy ($ entity );
413+
406414 if ($ softDeletes ) {
407- $ entity = $ this ->newRelationQuery ($ parentEntity )->withTrashed ()->where (
408- $ this ->resolveQualifiedKeyName (),
409- $ entity ->{$ this ->keyName ()}
410- )->firstOrFail ();
415+ $ entity = $ this ->runDestroyFetchQuery (
416+ $ request , $ entityQuery , $ parentEntity , $ entity ->{$ this ->keyName ()}
417+ );
411418 }
412419 } else {
413420 $ this ->performForceDestroy ($ entity );
@@ -562,6 +569,8 @@ protected function batchRestoreWithTransaction(Request $request, $parentKey)
562569 $ query = $ this ->buildBatchRestoreFetchQuery ($ request , $ parentEntity , $ requestedRelations );
563570 $ entities = $ this ->runBatchRestoreFetchQuery ($ request , $ query , $ parentEntity );
564571
572+ $ entityQuery = $ this ->buildRestoreFetchQuery ($ request , $ parentEntity , $ requestedRelations );
573+
565574 foreach ($ entities as $ entity ) {
566575 /** @var Model $entity */
567576 $ this ->authorize ($ this ->resolveAbility ('restore ' ), [$ entity , $ parentEntity ]);
@@ -570,10 +579,9 @@ protected function batchRestoreWithTransaction(Request $request, $parentKey)
570579
571580 $ this ->performRestore ($ entity );
572581
573- $ entity = $ this ->newRelationQuery ($ parentEntity )->where (
574- $ this ->resolveQualifiedKeyName (),
575- $ entity ->{$ this ->keyName ()}
576- )->firstOrFail ();
582+ $ entity = $ this ->runRestoreFetchQuery (
583+ $ request , $ entityQuery , $ parentEntity , $ entity ->{$ this ->keyName ()}
584+ );
577585
578586 $ entity = $ this ->cleanupEntity ($ entity );
579587
0 commit comments