Laravel
Dynamische Beziehungen in Laravel mit Eloquent-Macros
Eloquent-Macros sind eine elegante Möglichkeit, Laravel-Models zu erweitern. In diesem Beitrag definieren wir Beziehungen außerhalb der Model-Klasse.

Laravel-Eloquent-Macros sind eine hervorragende Möglichkeit, einige der Core-Klassen von Laravel zu erweitern. Mit Macros lässt sich ein Laravel-Model um Beziehungen ergänzen, die nicht direkt in der Model-Klasse selbst definiert sind.
Hier ist ein Beispiel, wie das funktioniert:
// Add to the boot() method of the AppServiceProvider
Builder::macro('warehouses', function () {
return $this->getModel()->hasManyThrough(
ShareholderWarehouse::class,
City::class,
'state_id',
'city_id'
);
});
Damit steht die warehouses-Beziehung in allen deinen Models zur Verfügung. Du kannst natürlich weitere Logik hinzufügen — aber dies ist bereits ein guter Ansatz, um Model-Beziehungen dynamisch zu ergänzen.
