The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Catalyst::Model::DBIx::Raw - A Catalyst Model for DBIx::Raw

VERSION

version 0.006

SYNOPSIS

    # Use the helper to add a DBIx::Raw model to your application
    script/myapp_create.pl model Raw DBIx::Raw

    package YourApp::Model::Raw;
    use parent 'Catalyst::Model::DBIx::Raw';

    __PACKAGE__->config(
        dsn => 'dsn',
        user => 'user',
        password => 'password',
    );

    #or
    __PACKAGE__->config(
        conf => '/path/to/conf.pl',
    );

    #or
    __PACKAGE__->config(
        dbix_class_model => 'DB', #will use same dbh as DBIx::Class if you have a DBIx::Class model named 'DB'
    );
 
 
    1;
    
    package YourApp::Controller::Foo;

    sub index : Path('/') {
        my ($self, $c) = @_;
        my $name = $c->model('Raw')->raw("SELECT name FROM people WHERE id=1");
        $c->res->body("Hello, $name!");
    }
 
    1;

METHODS

new

Catalyst calls this method.

CONFIG

Catalyst::Model::DBIx::Raw takes in all of the same options as config options that DBIx::Raw accepts for new. You can use dsn, user, and password to connect:

    __PACKAGE__->config(
        dsn => 'dsn',
        user => 'user',
        password => 'password',
    );

Or you can use a conf file:

    __PACKAGE__->config(
        conf => '/path/to/conf.pl',
    );

See DBIx::Raw for more information on those options. Additionally, there is one new option in Catalyst::Model::DBIx::Raw, and that is dbix_class_model:

    __PACKAGE__->config(
        dbix_class_model => 'DB', 
    );

This is the name of your DBIx::Class model, if you have one. If passed in, Catalyst::Model::DBIx::Raw will reuse the same dbh that DBIx::Class is using. This can be useful if you have DBIx::Class being used for things such as session management or CRUD with forms, but you are using Catalyst::Model::DBIx::Raw to query yourself. This way you do not unecessarily create two database handles. Even if you do not use DBIx::Class in a particular call, Catalyst::Model::DBIx::Raw can still use the DBIx::Class model to get a database handle.

NOTES

One thing to note is that Catalyst::Model::DBIx::Raw uses the same DBIx::Raw object every request, but gets a new dbh every request using DBIx::Raw's connect method.

AUTHOR

Adam Hopkins <srchulo@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2014 by Adam Hopkins.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.