我在一个控制器中有一个动作,需要隐藏一些数据库记录来呈现表格。
我在第二个控制器中有一个动作,它填充了一个非常相似的表,因此它自己的存储中的数据与我需要的第一个相同。
如果不在两个控制器中复制一堆代码,有没有办法使用一个动作来填充另一个动作的存储?
编辑: 响应代码请求(有些简化,但应该了解要点):
在 Contoller::ShoppingCart 中
sub data : Chained('base') PathPart('') CaptureArgs(0) {
my ( $self, $c ) = @_;
my $query = DBRESULTS;
my $count = 20;
$c->stash(
data => $items,
dataRowCount => scalar @$items,
totalCount => $count,
pageSize => $pageSize,
);
}
在控制器::供应商
sub viewform : Chained('row') Args(1) {
my ( $self, $c, $view ) = @_;
$c->stash(
template => 'simpleItem.mas',
view => $view,
);
}
simpleItem.mas 模板需要数据、dataRowCount、totalCount、pageSize,因此从 Controller::ShoppingCart::pageData 中获取存储是理想的。