问候,
我是 Catalyst 的新手,我正在尝试实现一些调度逻辑。
我的数据库有一个项目表,每个项目都有一个唯一的url_part
字段,每个项目在同一个表中都有一个父项,形成一个树结构。如果baz
是一个孩子的bar
孩子foo
是根的孩子的孩子,我希望 URL/foo/bar/baz
映射到这个对象。树可以是任何深度,用户需要能够访问任何节点,无论是分支还是叶子。
我一直在查看 Chained dispatchers 的文档,但我不确定这是否可以满足我的要求。似乎链式调度程序中的每个步骤都必须为PathPart
属性定义一个名称,但我希望我的 URL 仅由数据库结构确定。
这是否易于使用现有的 Catalyst 调度程序实现,还是我需要编写自己的调度类?
谢谢!:)
预计到达时间:
我发现我可以使用一个空Args
属性来捕获任意数量的参数。以下似乎成功捕获了根下的每个请求:
sub default :Path :Args() {
my ( $self, $c ) = @_;
my $path = $c->request->path;
$c->response->status( 200 );
$c->response->body( "Your path is $path" );
}
从那里我可以手动解析路径并获得我需要的东西,但是,我不知道这是否是完成我所追求的最佳方式。