---
name: "Catalyst::TraitFor::Model::DBIC::Schema::PerRequestSchema"
section: "3pm"
platform: "linux"
package: "libcatalyst-model-dbic-schema-perl"
version: "0.66-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Catalyst::TraitFor::Model::DBIC::Schema::PerRequestSchema"
---

# Catalyst::TraitFor::Model::DBIC::Schema::PerRequestSchema(3pm)

Clone the schema with attributes for each requests

## NAME

Catalyst::TraitFor::Model::DBIC::Schema::PerRequestSchema - Clone the schema with attributes for each requests

## SYNOPSIS

```
    __PACKAGE__->config({
        traits => ['PerRequestSchema'],
    });
    sub per_request_schema_attributes {
        my ($self, $c) = @_;
        return (restricting_object => $c->user->obj);
    }
    ### OR ###
    sub per_request_schema {
        my ($self, $c) = @_;
        return $self->schema->schema_method($c->user->obj)
    }
```

## DESCRIPTION

Clones the schema for each new request with the attributes retrieved from your `"per_request_schema_attributes"` method, which you must implement. This method is passed the context.

Alternatively, you could also override the `"per_request_schema"` method if you need access to the schema clone and/or need to separate out the Model/Schema methods.  (See examples above and the defaults in the code.)

## SEE ALSO

Catalyst::Model::DBIC::Schema, DBIx::Class::Schema

## AUTHOR

See "AUTHOR" in Catalyst::Model::DBIC::Schema and "CONTRIBUTORS" in Catalyst::Model::DBIC::Schema.

## COPYRIGHT

See "COPYRIGHT" in Catalyst::Model::DBIC::Schema.

## LICENSE

This program is free software, you can redistribute it and/or modify it under the same terms as Perl itself.
