{"adoption": {"forks": 158, "observed_at": "2026-08-28T04:07:27.100289+00:00", "stars": 2870}, "canonical_url": "https://ross.abutalabs.com/products/eloquent-has-many-deep", "card": {"archived": false, "artifact_type": "library", "description": "Laravel Eloquent HasManyThrough relationships with unlimited levels", "domain": ["web-development", "backend", "databases"], "enriched": true, "function": ["orm", "database"], "health_score": 81, "homepage": null, "language": "PHP", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["staudenmeir/eloquent-has-many-deep"], "name": "staudenmeir/eloquent-has-many-deep", "platform": ["php"], "pushed_at": "2026-03-14T10:55:06+00:00", "repo": "staudenmeir/eloquent-has-many-deep", "stars": 2870, "tags": ["eloquent", "laravel-package", "has-many-through", "relationships", "composer-package", "laravel"], "topics": [], "urls": [], "use_cases": ["query relationships across unlimited intermediate tables in Laravel Eloquent", "define deep has-many-through relationships spanning multiple models", "combine many-to-many and polymorphic relationships in a single chain", "traverse nested relationships like country -> users -> posts -> comments", "get deep has-one relationships through multiple intermediate models", "apply constraints on intermediate and pivot tables in deep relationships"], "what_it_is": "A Laravel Eloquent package extending HasManyThrough relationships to support unlimited levels of intermediate models. It supports many-to-many, polymorphic relationships, and their combinations, with compatibility across Laravel 5.5+.", "when_to_avoid": ["your relationships are only one level deep and native Laravel HasManyThrough suffices", "you are not using Laravel or Eloquent ORM", "you prefer writing raw SQL joins or query builder queries for complex multi-table joins"], "when_to_choose": ["you need Eloquent relationships deeper than the single intermediate model HasManyThrough allows", "you want to chain existing relationships or define multi-level relations manually with custom keys", "you need support for polymorphic and many-to-many combinations in deep relation chains"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/eloquent-has-many-deep", "repo": "staudenmeir/eloquent-has-many-deep", "role": "main", "score": 74}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:27.100289+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:48:28.297664+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "39bb7fac4d4804c7acf93566cffb6e1429f8859c537f7a3ecbda979b2d1e1912", "fetched_at": "2026-08-28T04:07:27.100289+00:00", "kind": "readme", "missing": false, "url": "https://github.com/staudenmeir/eloquent-has-many-deep"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:27.100289+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:48:28.297664+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "39bb7fac4d4804c7acf93566cffb6e1429f8859c537f7a3ecbda979b2d1e1912", "fetched_at": "2026-08-28T04:07:27.100289+00:00", "kind": "readme", "missing": false, "url": "https://github.com/staudenmeir/eloquent-has-many-deep"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:48:28.297664+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "39bb7fac4d4804c7acf93566cffb6e1429f8859c537f7a3ecbda979b2d1e1912", "fetched_at": "2026-08-28T04:07:27.100289+00:00", "kind": "readme", "missing": false, "url": "https://github.com/staudenmeir/eloquent-has-many-deep"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:07:27.100289+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:27.100289+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:27.100289+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:48:28.297664+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "39bb7fac4d4804c7acf93566cffb6e1429f8859c537f7a3ecbda979b2d1e1912", "fetched_at": "2026-08-28T04:07:27.100289+00:00", "kind": "readme", "missing": false, "url": "https://github.com/staudenmeir/eloquent-has-many-deep"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:27.100289+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:27.100289+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:48:28.297664+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "39bb7fac4d4804c7acf93566cffb6e1429f8859c537f7a3ecbda979b2d1e1912", "fetched_at": "2026-08-28T04:07:27.100289+00:00", "kind": "readme", "missing": false, "url": "https://github.com/staudenmeir/eloquent-has-many-deep"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:27.100289+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:27.100289+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:27.100289+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:48:28.297664+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "39bb7fac4d4804c7acf93566cffb6e1429f8859c537f7a3ecbda979b2d1e1912", "fetched_at": "2026-08-28T04:07:27.100289+00:00", "kind": "readme", "missing": false, "url": "https://github.com/staudenmeir/eloquent-has-many-deep"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:27.100289+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:27.100289+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:48:28.297664+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "39bb7fac4d4804c7acf93566cffb6e1429f8859c537f7a3ecbda979b2d1e1912", "fetched_at": "2026-08-28T04:07:27.100289+00:00", "kind": "readme", "missing": false, "url": "https://github.com/staudenmeir/eloquent-has-many-deep"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:48:28.297664+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "39bb7fac4d4804c7acf93566cffb6e1429f8859c537f7a3ecbda979b2d1e1912", "fetched_at": "2026-08-28T04:07:27.100289+00:00", "kind": "readme", "missing": false, "url": "https://github.com/staudenmeir/eloquent-has-many-deep"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:48:28.297664+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "39bb7fac4d4804c7acf93566cffb6e1429f8859c537f7a3ecbda979b2d1e1912", "fetched_at": "2026-08-28T04:07:27.100289+00:00", "kind": "readme", "missing": false, "url": "https://github.com/staudenmeir/eloquent-has-many-deep"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:48:28.297664+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "39bb7fac4d4804c7acf93566cffb6e1429f8859c537f7a3ecbda979b2d1e1912", "fetched_at": "2026-08-28T04:07:27.100289+00:00", "kind": "readme", "missing": false, "url": "https://github.com/staudenmeir/eloquent-has-many-deep"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 72, "longevity": 100, "rhythm": 62}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3000, "days_push": 172, "days_rel": 172, "gap_med": 40, "n_releases_24m": 12}, "score": 74, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}