Filtro metodo: getDeclaredDependencies
Questo filtro, che si applica ai modelli che utilizzano il tratto NsDependable, viene usato per modificare o estendere le risorse di dipendenza controllate durante l’eliminazione di qualsiasi entità. Sostituirai “Class” con la classe Crud pertinente per la quale desideri estendere il controllo delle dipendenze.
<?php
namespace Modules\YourModule\Providers;
use Illuminate\Support\Provider as CoreProvider;
use App\Classes\Hook;
use App\Classes\Model;
use App\Models\User;
use Modules\YourModule\Models\Book;
class ServiceProvider extends CoreProvider
{
public function register()
{
Hook::filter( User::method( 'setDependencies' ), function( $dependants ) {
$dependants[ Book::class ] = Model::dependant(
local_index: 'id',
local_name: 'name',
foreign_index: 'user_id',
foreign_name: 'name'
);
return $dependants;
});
}
}
Nell’esempio sopra, stiamo estendendo la dipendenza dichiarata dall’utente per garantire che un utente non venga eliminato se è ancora referenziato nella tabella dei libri.