【问题标题】:Perl Mojolicious ModelPerl Mojolicious 模型
【发布时间】: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


【解决方案1】:

稍后编辑:我通过本教程以某种方式进行了管理:
http://oliverguenther.de/2014/04/applications-with-mojolicious-part-four-database-schemas-with-dbixclass/
当您现在可以确定作者在哪里创建文件时,可以在此处获得 Github 代码:
https://github.com/oliverguenther/Moblo
如果您遇到问题也请检查:
Mojolicious Deploying database schema

【讨论】: