@@ -348,11 +348,11 @@ private function deleteExistingHasManyRelations($hasMany, PrimaryKey $parentId):
348348 ? $ this ->removeTablePrefix ($ hasMany ->ownerJoin )
349349 : $ this ->getDefaultForeignKeyName ();
350350
351- $ this -> executeQuery (
352- sql: ' DELETE FROM %s WHERE %s = ? ' ,
353- params: [ $ relatedModel -> getTableName (), $ foreignKey ],
354- bindings: [ $ parentId -> value ],
355- );
351+ new DeleteQueryBuilder ( $ relatedModel -> getName ())
352+ -> where ( $ foreignKey , $ parentId -> value )
353+ -> build ()
354+ -> onDatabase ( $ this -> onDatabase )
355+ -> execute ( );
356356 }
357357
358358 private function deleteExistingHasOneRelation ($ hasOne , PrimaryKey $ parentId ): void
@@ -375,29 +375,29 @@ private function deleteCustomHasOneRelation($hasOne, PrimaryKey $parentId): void
375375
376376 $ foreignKeyColumn = $ hasOne ->relationJoin ?? $ this ->removeTablePrefix ($ hasOne ->ownerJoin );
377377
378- $ result = $ this -> executeQuery (
379- sql: ' SELECT %s FROM %s WHERE %s = ? ' ,
380- params: [ $ foreignKeyColumn , $ ownerModel -> getTableName (), $ ownerModel -> getPrimaryKey ()],
381- bindings: [ $ parentId -> value ],
382- );
378+ $ result = new SelectQueryBuilder ( $ ownerModel -> getName (), new ImmutableArray ([ $ foreignKeyColumn ]))
379+ -> where ( $ ownerModel -> getPrimaryKey (), $ parentId -> value )
380+ -> build ()
381+ -> onDatabase ( $ this -> onDatabase )
382+ -> fetchFirst ( );
383383
384- if (! $ result || ! isset ($ result [0 ][ $ foreignKeyColumn ])) {
384+ if (! $ result || ! isset ($ result [$ foreignKeyColumn ])) {
385385 return ;
386386 }
387387
388- $ relatedId = $ result [0 ][ $ foreignKeyColumn ];
388+ $ relatedId = $ result [$ foreignKeyColumn ];
389389
390- $ this -> executeQuery (
391- sql: ' DELETE FROM %s WHERE %s = ? ' ,
392- params: [ $ relatedModel -> getTableName (), $ relatedModel -> getPrimaryKey ()],
393- bindings: [ $ relatedId ],
394- );
390+ new DeleteQueryBuilder ( $ relatedModel -> getName ())
391+ -> where ( $ relatedModel -> getPrimaryKey (), $ relatedId )
392+ -> build ()
393+ -> onDatabase ( $ this -> onDatabase )
394+ -> execute ( );
395395
396- $ this -> executeQuery (
397- sql: ' UPDATE %s SET %s = NULL WHERE %s = ? ' ,
398- params: [ $ ownerModel -> getTableName (), $ foreignKeyColumn , $ ownerModel -> getPrimaryKey ()],
399- bindings: [ $ parentId -> value ],
400- );
396+ new UpdateQueryBuilder ( $ ownerModel -> getName (), [ $ foreignKeyColumn => null ], $ this -> serializerFactory )
397+ -> where ( $ ownerModel -> getPrimaryKey (), $ parentId -> value )
398+ -> build ()
399+ -> onDatabase ( $ this -> onDatabase )
400+ -> execute ( );
401401 }
402402
403403 private function deleteStandardHasOneRelation ($ hasOne , PrimaryKey $ parentId ): void
@@ -409,17 +409,11 @@ private function deleteStandardHasOneRelation($hasOne, PrimaryKey $parentId): vo
409409
410410 $ foreignKeyColumn = Intl \singularize ($ ownerModel ->getTableName ()) . '_ ' . $ ownerModel ->getPrimaryKey ();
411411
412- $ this ->executeQuery (
413- sql: 'DELETE FROM %s WHERE %s = ? ' ,
414- params: [$ relatedModel ->getTableName (), $ foreignKeyColumn ],
415- bindings: [$ parentId ->value ],
416- );
417- }
418-
419- private function executeQuery (string $ sql , array $ params , array $ bindings ): mixed
420- {
421- $ query = new Query (sprintf ($ sql , ...$ params ), $ bindings );
422- return $ query ->onDatabase ($ this ->onDatabase )->execute ();
412+ new DeleteQueryBuilder ($ relatedModel ->getName ())
413+ ->where ($ foreignKeyColumn , $ parentId ->value )
414+ ->build ()
415+ ->onDatabase ($ this ->onDatabase )
416+ ->execute ();
423417 }
424418
425419 private function handleCustomHasOneRelation ($ hasOne , object |array $ relation , PrimaryKey $ parentId ): null
@@ -435,11 +429,11 @@ private function handleCustomHasOneRelation($hasOne, object|array $relation, Pri
435429
436430 $ foreignKeyColumn = $ hasOne ->relationJoin ?? $ this ->removeTablePrefix ($ hasOne ->ownerJoin );
437431
438- $ this -> executeQuery (
439- sql: ' UPDATE %s SET %s = ? WHERE %s = ? ' ,
440- params: [ $ ownerModel -> getTableName (), $ foreignKeyColumn , $ ownerModel -> getPrimaryKey ()],
441- bindings: [ $ relatedModelId -> value , $ parentId -> value ],
442- );
432+ new UpdateQueryBuilder ( $ ownerModel -> getName (), [ $ foreignKeyColumn => $ relatedModelId -> value ], $ this -> serializerFactory )
433+ -> where ( $ ownerModel -> getPrimaryKey (), $ parentId -> value )
434+ -> build ()
435+ -> onDatabase ( $ this -> onDatabase )
436+ -> execute ( );
443437
444438 return null ;
445439 }
0 commit comments