【发布时间】:2010-01-12 02:22:37
【问题描述】:
我找不到任何关于如何在子类表单中使用父表单元素的参考。可能是因为除了我之外的每个人都很明显。这让我很难过。这是我尝试过的。
起初,在我的表单构造函数中,我调用了
parent::__construct($options = null);
然后像这样访问父元素
$type = parent::setName($this->type);
问题是所有父表单元素都会显示,无论是否显式调用。有人说,“不要用__construct(),用init()函数。所以我把构造函数改成init(),把父构造函数注释掉,然后跑表单,就炸了说不能通过setName() 的值为空。我注释掉了所有 seName() 调用并且表单运行,但只显示了在子类表单中实例化的元素。
我的问题是这样的:如果我不使用父构造函数,我如何获取和使用父的表单元素?
已解决:由于构造函数切换为init,所以对parent的调用也需要切换。对于有php背景的人来说很容易。对于不这样做的人来说,情况并非如此。
使用
parent::init();
【问题讨论】:
-
嗨,迈克尔,欢迎来到 Stack Overflow!您可以做一些事情来帮助其他用户看到您的解决方案并为正确的答案加分。如果发布的答案之一是正确的,您可以选择该答案作为正确答案。如果没有,您可以发布自己的解决方案作为答案,然后选择正确的答案。这样,其他人会看到您的问题已得到解答;没有必要在问题标题中加上“已解决”。希望这可以帮助;回头见!
-
谢谢,韦斯。我不太确定如何解决这个问题。同时,我希望尽快提供解决方案,以防其他人需要它。
标签: zend-framework inheritance zend-form subclass