gpt4 book ai didi

Phalcon 初始化()不工作

转载 作者:行者123 更新时间:2023-12-02 21:28:02 30 4
gpt4 key购买 nike

我有 2 个 Controller ,TEST1ControllerTEST2Controller

TEST2Controller中,我有一个initialize()函数设置属性值。

如果我尝试直接从浏览器访问TEST2Controller,一切都会完美运行。

但是当我从 TEST1Controller 调用 TEST2Controller 方法时,似乎 initialize() 函数没有在 TEST2Controller 中调用.

TEST1Controller:

namespace Modcont\Controller;

use Modcont\Controller\Test2Controller;

class Test1Controller extends BaseController
{

function gettestAction()
{
$t = new Test2Controller(); // calling TEST2 Controller Method Within TEST1 Controller
echo $t->dotestAction(" MYAPP ");
}
}

TEST2Controller:

namespace Modcont\Controller;

class Test2Controller extends BaseController
{
public $prefix;
function initialize()
{
$this->prefix = 'your name is';
}

function dotestAction($name)
{
return $this->prefix.' : '.$name;
}

}

最佳答案

Phalcon 提供了两种 Controller 初始化方法,即 initializeonContruct 方法。这两种方法之间的基本区别在于,当框架创建 Controller 以继续执行操作时才调用initialize。由于您临时实例化 Controller 对象,因此不会调用initialize,只有onConstruct会被调用。因此,您需要将初始化逻辑放在那里:

function onConstruct()
{
$this->prefix = 'your name is';
}

此外,不鼓励在 Controller 中实现 native 构造函数,但如果这样做,请确保在您自己的构造函数中调用父构造函数:parent::__construct();

所有这些信息都可以找到 in the Docs .

关于Phalcon 初始化()不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23064156/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com