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 nestedselect
arrays. - Can include nested relations for deep population of associated records.
- Cannot be used in combination with
select
. - Supports special aggregations like
_count
for 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
include
when you need related model data immediately—this avoids extra queries. - Use nested
select
insideinclude
to control which fields from related models are returned. - Avoid combining
select
andinclude
at the top level—they are mutually exclusive. - Use
_count
to retrieve relation sizes without loading all related records.