【发布时间】:2018-05-26 11:05:47
【问题描述】:
我正在创建一个 Mojolicious 申请但我看不懂documentation for creating a model。
谁能提供一个示例,说明如何创建模型、运行原始 SQL 查询并在控制器中获取结果以传递给视图?
我在想这样的事情:
型号
package LS::Model::Dt;
use Mojo::Base;
use DBI;
# Here is what I don't understand
# Do I need to create a subroutine that connects to the database like this?
sub connect_db {
my $user = 'user_sql';
my $pass = 'pass_sql';
my $connection = "dbi:Sybase:server=db.sql-srv.com;database=Adventure";
my $dbh = DBI->connect($connection, $user, $pass) or die 'Cannot connect';
}
sub queries{
my $query_selectall = "select * from foo";
my $all_query = $dbh->selectall_arrayref($query_selectall, {Slice => {}});
}
控制器
package LS::Controller::Home;
use Mojo::Base 'Mojolicious::Controller';
use LS::Model::Dt
sub home {
my $self = shift;
# Somehow get the query results here
my $query_res = #somehow get the query results here
$self->render(res=>$query_res);
}
1;
【问题讨论】:
-
你考虑过使用
Mojolicious::Lite吗?如果您刚刚开始,它可以满足您的所有需求。 -
很有趣。快速搜索后,我可以在 Mojolicious 中找到几乎为零的模型文档。甚至您的链接也只是显示了本质上是带有单例实例的随机类。
-
@Borodin 是的,但我需要学习 MVC 方式,感谢您的快速回复
-
@melpomene 是的,不幸的是,特别是带有示例的文档很少,感谢您的回复
-
考虑查看 DBIx::Class,特别是 Schema::Loader。如果您已经建立了一个数据库,您可以自动发现它,以获得一个 $schema 对象,您可以将其用作数据库的模型。
标签: perl model-view-controller mojolicious