NAME

DBIx::Custom::Model - Model object

SYNOPSIS

use DBIx::Custom::Model;

my $model = DBIx::Custom::Model->new(table => 'books');

ATTRIBUTES

name

my $name = $model->name;
$model = $model->name('book');

Model name.

table

my $table = $model->table;
$model = $model->table('book');

Table name, this is passed to insert, update, update_all, delete, delete_all, select method.

join

my $join = $model->join;
$model = $model->join(
  ['left outer join company on book.company_id = company.id']
);

Join clause, this value is passed to select method.

dbi

my $dbi = $model->dbi;
$model = $model->dbi($dbi);

DBIx::Custom object.

bind_type

my $type = $model->bind_type;
$model = $model->bind_type(['image' => DBI::SQL_BLOB]);

Database data type, this is used as type option of insert, update, update_all, delete, delete_all, and select method

mtime

my $mtime = $model->mtime;
$model = $model->mtime('modified_time');

Updated timestamp column, this is passed to update method.

ctime

my $ctime = $model->ctime;
$model = $model->ctime('created_time');

Create timestamp column, this is passed to insert or update method.

primary_key

my $primary_key = $model->primary_key;
$model = $model->primary_key(['id', 'number']);

Primary key,this is passed to insert, update, delete, and select method.

METHODS

DBIx::Custom::Model inherits all methods from Object::Simple, and you can use all methods of DBIx::Custom and DBI and implements the following new ones.

delete

$model->delete(...);

Same as delete of DBIx::Custom except that you don't have to specify options if you set attribute in model.

delete_all

$model->delete_all(...);

Same as delete_all of DBIx::Custom except that you don't have to specify options if you set attribute in model.

insert

$model->insert(...);

Same as insert of DBIx::Custom except that you don't have to specify options if you set attribute in model.

mycolumn

my $column = $self->mycolumn;
my $column = $self->mycolumn(book => ['author', 'title']);
my $column = $self->mycolumn(['author', 'title']);

Create column clause for myself. The following column clause is created.

book.author as author,
book.title as title

If table name is omitted, table attribute of the model is used. If column names is omitted, columns attribute of the model is used.

new

my $model = DBIx::Custom::Model->new;

Create a DBIx::Custom::Model object.

select

$model->select(...);

Same as select of DBIx::Custom except that you don't have to specify options if you set attribute in model.

update

$model->update(...);

Same as update of DBIx::Custom except that you don't have to specify options if you set attribute in model.

update_all

$model->update_all(\%param);

Same as update_all of DBIx::Custom except that you don't have to specify options if you set attribute in model.