簡介
DBIx::Custom::Model模塊是DBIx::Custom框架中的模型對象贸典。每個Model對象都對應于一個數(shù)據(jù)庫中的表或視圖谦趣。
use DBIx::Custom::Model;
my $model = DBIx::Custom::Model->new(table => 'books');
屬性
name
my $name = $model->name;
$model = $model->name('book');
DBIx::Custom::Model對象的名稱黑滴,如果不設置則默認與表名相同真友。這個名稱可用于DBIx::Custom對象中的model方法捍岳,用于獲取對應名稱的 DBIx::Custom::Model對象叛溢。
table
my $table = $model->table;
$model = $model->table('book');
表名塑悼,指明當前DBIx::Custom::Model對象與數(shù)據(jù)庫中的哪個表相關聯(lián)。傳遞給insert楷掉,update厢蒜,update_all,delete烹植,delete_all斑鸦,select方法使用。
join
my $join = $model->join;
$model = $model->join(
['left outer join company on book.company_id = company.id']
);
join子句草雕,這個值會傳遞給select方法使用巷屿。
dbi
my $dbi = $model->dbi;
$model = $model->dbi($dbi);
DBIx::Custom對象。
bind_type
my $type = $model->bind_type;
$model = $model->bind_type(['image' => DBI::SQL_BLOB]);
數(shù)據(jù)庫中的數(shù)據(jù)類型墩虹,這個值會被用作insert嘱巾,update,update_all诫钓,delete旬昭,delete_all,和select方法的bind_type參數(shù)選項菌湃。
mtime
my $mtime = $model->mtime;
$model = $model->mtime('modified_time');
在數(shù)據(jù)庫表中記錄數(shù)據(jù)更新時間的數(shù)據(jù)列问拘。傳遞給update方法使用。
ctime
my $ctime = $model->ctime;
$model = $model->ctime('created_time');
在數(shù)據(jù)庫表中記錄數(shù)據(jù)創(chuàng)建時間的數(shù)據(jù)列。傳遞給insert和update方法使用骤坐。
primary_key
my $primary_key = $model->primary_key;
$model = $model->primary_key(['id', 'number']);
主鍵绪杏,傳遞給insert,update纽绍,delete蕾久,和select方法使用。
方法
DBIx::Custom::Model 繼承模塊了Object::Simple中的所有方法拌夏,并實現(xiàn)了以下方法腔彰。
delete
$model->delete(...);
這個方法和DBIx::Custom中的delete方法是完全一樣的。只是如果你在自己的DBIx::Custom::Model對象中指定了屬性之后辖佣,就可以不用再調(diào)用方法時指定OPTION了。
delete_all
$model->delete_all(...);
這個方法和DBIx::Custom中的delete_all方法是完全一樣的搓逾。只是如果你在自己的DBIx::Custom::Model對象中指定了屬性之后卷谈,就可以不用再調(diào)用方法時指定OPTION了。
insert
$model->insert(...);
這個方法和DBIx::Custom中的insert方法是完全一樣的霞篡。只是如果你在自己的DBIx::Custom::Model對象中指定了屬性之后世蔗,就可以不用再調(diào)用方法時指定OPTION了。
mycolumn
my $column = $self->mycolumn;
my $column = $self->mycolumn(book => ['author', 'title']);
my $column = $self->mycolumn(['author', 'title']);
book.author as author,
book.title as title
為當前DBIx::Custom::Model對象所關聯(lián)的表創(chuàng)建select語句中的column子句朗兵。如果參數(shù)中沒有傳表名污淋,則使用當前DBIx::Custom::Model的table屬性。如果參數(shù)中沒有傳列名余掖,則使用當前DBIx::Custom::Model的columns屬性寸爆。
new
my $model = DBIx::Custom::Model->new;
創(chuàng)建一個DBIx::Custom::Model對象。
select
$model->select(...);
這個方法和DBIx::Custom中的select方法是完全一樣的盐欺。只是如果你在自己的DBIx::Custom::Model對象中指定了屬性之后赁豆,就可以不用再調(diào)用方法時指定OPTION了。
update
$model->update(...);
這個方法和DBIx::Custom中的update方法是完全一樣的冗美。只是如果你在自己的DBIx::Custom::Model對象中指定了屬性之后魔种,就可以不用再調(diào)用方法時指定OPTION了。
update_all
$model->update_all(...);
這個方法和DBIx::Custom中的update_all方法是完全一樣的粉洼。只是如果你在自己的DBIx::Custom::Model對象中指定了屬性之后节预,就可以不用再調(diào)用方法時指定OPTION了。