← Zurück zu Team für Laravel und React

Skill · Version 1.0.0

Eloquent-Modelle und Abfragen

Gestaltet klare Laravel-Abfragen und Beziehungen mit vorhersehbaren Ereignissen, Speicherbedarf und Datentypen.

laravel-eloquent

Teammitglieder mit diesem Skill

Entdecke, wie der Skill hilft

Wann ist der Skill hilfreich?

Nutze diesen Skill bei übermäßiger Datenladung oder verstecktem Modellverhalten.

Wobei hilft er dir?

  • Prüft Casts, Observer und Schreibregeln vor Persistenzänderungen.
  • Gruppiert Bedingungen ohne Umgehung von Mandantenfiltern.
  • Nutzt Datenbankaggregation und begrenzte Verarbeitung statt vollständiger Sammlungen.

Das könntest du fragen

Überarbeite unseren Bestellbericht mit begrenzten Filtern und Datenbanksummen bei erhaltenen nötigen Modellereignissen. Kombiniere eine ODER-Suche mit Mandantenfilter und vergleiche Berichtssummen. Auch über die alternative Bedingung darf kein fremder Mandantendatensatz erscheinen.

Ausführliche Dokumentation

Hier findest du die ursprüngliche Anleitung, Beispiele und Prüfschritte des Skills in ihrer Originalsprache.

Details…Weniger anzeigen

Eloquent & Query Design

Models, relationships and casts

  • Declare explicit return types on relationships (HasMany, BelongsTo, BelongsToMany, HasOne, MorphTo) and prefer Eloquent relationships and query builder methods (Model::query()) over raw SQL or manual joins.
  • Inspect a model's casts (casts() method or $casts property, following the repo), $fillable / $guarded, global scopes, observers and model events before changing how it is created, updated or deleted.
  • Configure casts for dates (immutable_datetime), PHP enums, booleans, JSON (array / AsArrayObject) and encrypted attributes.
  • Never hide external network calls, writes or heavy queries inside an accessor; accessors may run on every serialization.
  • Remember that bulk queries (Model::where(...)->update(), delete(), insert(), upsert()) bypass Eloquent model events and observers.

Scopes and expressive queries

  • Encapsulate reusable query constraints in local scopes (#[Scope] or scopeActive(Builder $query): Builder). Group orWhere clauses inside a closure ($query->where(fn ($q) => $q->where(...)->orWhere(...))) so precedence never leaks past tenant or status filters.
  • Push filtering, counting and aggregation into SQL (withCount, withSum, withExists, whereRelation, whereDoesntHave, addSelect subqueries, or selectRaw with bound parameters) instead of calling ->get() and filtering or summing in PHP Collections.
  • Stream or batch large datasets with chunkById(), lazy() or cursor() rather than loading thousands of models into memory with all() or get().

Enthaltene Dateien 2

  • LICENSE.txt
  • SKILL.md