Mad::Mapper::Guides::Tutorial - How to use Mad::Mapper in your application
This tutorial will give a short intro to how you can use Mad::Mapper in your application.
The snippet below is enough to define a model. A model should contain all the columns that you want to map to your table. In many cases you don't need to define a table, since it is automatically created from the last part of the package name.
# name your model package MyApp::Model::User; # import all the helpers from Mad::Mapper use Mad::Mapper -base; # columns become accessors, just like you would define with "has" col id => undef; col email => '';
See also Mad::Mapper::Guides::Custom if you want more control.
The code below shows how you can use the models in a Mojolicious::Lite application. The example connects to postrgres using Mojo::Pg, but you can also use Mojo::SQLite or Mojo::mysql.
use Mojolicious::Lite; use Mojo::Pg; # create a database object from either Mojo::Pg, # Mojo::SQLite or Mojo::mysql my $pg = Mojo::Pg->new; # create a helper method which makes it easy to # access your models helper model => sub { my $c = shift; my $model = "MyApp::Model::" .shift; Mojo::Loader::load_class($model); return $model->new(db => $pg->db, @_); }; # render a user profile page get "/profile" => sub { my $c = shift; my $user = $c->model(User => id => $c->session("uid")); $c->delay( sub { my ($delay) = @_; $user->load($delay->begin); }, sub { my ($delay, $err) = @_; return $c->render_exception($err) if $err; return $c->render(user => $user); }, ); }; # update the MyApp::Model::User model post "/profile" => sub { my $c = shift; my $user = $c->model(User => id => $c->session("uid")); $c->delay( sub { my ($delay) = @_; $user->email($c->param("email")); $user->save($delay->begin); }, sub { my ($delay, $err) = @_; return $c->render_exception($err) if $err; return $c->render(user => $user); }, ); };
Copyright (C) 2014-2016, Jan Henning Thorsen
This program is free software, you can redistribute it and/or modify it under the terms of the Artistic License version 2.0.
Jan Henning Thorsen - jhthorsen@cpan.org
jhthorsen@cpan.org
To install Mad::Mapper, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Mad::Mapper
CPAN shell
perl -MCPAN -e shell install Mad::Mapper
For more information on module installation, please visit the detailed CPAN module installation guide.