Phalcon框架 forward 跳转到不同 modules 的方法

最近研究Phalcon,发现forward很好玩,但是也发现了问题。
根据文档:https://docs.phalconphp.com/zh/3.2/dispatcher#forwarding-events-manager 操作之后,发现还是不能在不同 module 之间正常跳转。经过研究,发现原因是:$view->setBasePath() 设置错误,需要重新设置一下,方法如下:(这个方法是直接在 controller 下面执行的,如果需要在 event 下执行,做相应修改即可)

if (1) {
    $this->forward([
        'namespace' => 'Bangbang\Modules\Wechat\Controllers',
        'controller' => 'index',
        'action' => 'index'
    ]);
    $this->dispatcher->setModuleName($moduleName);

    //设置 view dirs
    $this->view->setViewsDir($viewDir);
    $this->view->setLayoutsDir($layoutsDir);
    $this->view->setPartialsDir($partialsDir);

    return false;
}

注意:
1、$moduleName,$viewDir,$layoutsDir,$partialsDir 根据实际填写;
2、$viewDir,$layoutsDir,$partialsDir 都为绝对路径;

另外,Module.php 里面 registerServices 方法也需要设置一下,参考一下我的:

$view->setViewsDir(__DIR__ . '/views/');
$view->setLayoutsDir(__DIR__ . '/views/layouts/');
$view->setPartialsDir(__DIR__ . '/views/shared/');

forward 比 redirect 少一次请求,何乐而不为呢!

转载于:https://my.oschina.net/u/574306/blog/1162765

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值