Including Related Models with include
The include parameter allows you to fetch related records alongside the main model. This is useful for eager-loading associations such as one-to-one, one-to-many, or many-to-many relations.
- Accepts an associative array where keys are relation names and values are booleans (
true) or nestedselectarrays. - Can include nested relations for deep population of associated records.
- Cannot be used in combination with
select. - Supports special aggregations like
_countfor relation counts.
Example Usage: Basic Include
use Lib\Prisma\Classes\Prisma;
$prisma = Prisma::getInstance();
$users = $prisma->user->findMany([
'include' => [
'profile' => true
]
]);
echo "<pre>";
print_r($users);
echo "</pre>";
Example Usage: Nested Include with Select
$users = $prisma->user->findMany([
'include' => [
'profile' => [
'select' => [
'bio' => true
]
]
]
]);
Example Usage: Relation Count with _count
$users = $prisma->user->findMany([
'include' => [
'_count' => [
'select' => [
'posts' => true
]
]
]
]);
Best Practices
- Use
includewhen you need related model data immediately—this avoids extra queries. - Use nested
selectinsideincludeto control which fields from related models are returned. - Avoid combining
selectandincludeat the top level—they are mutually exclusive. - Use
_countto retrieve relation sizes without loading all related records.