Model Symfony 1.4扩展模型错误
在反复阅读了Symfony的1.4文档并在谷歌进行了充分的研究之后,我决定在这里询问一下。 我有一个名为“Model Symfony 1.4扩展模型错误,model,symfony-1.4,extend,Model,Symfony 1.4,Extend,在反复阅读了Symfony的1.4文档并在谷歌进行了充分的研究之后,我决定在这里询问一下。 我有一个名为“ot”的模型,我想有一个方法getUnreadMsg()来获取一些特定的数据 这是一节课: class ot extends Baseot { public function __toString() { return $this->getNombre(); } public function getNumberOfUnreadMsgs()
ot
”的模型,我想有一个方法getUnreadMsg()
来获取一些特定的数据
这是一节课:
class ot extends Baseot {
public function __toString() {
return $this->getNombre();
}
public function getNumberOfUnreadMsgs() {
$mensajes = Doctrine_Core::getTable('mensaje')
->createQuery('m')
->where('m.ots_id=' . $this->getId())
->andWhere('m.estado=0')
->orderBy('m.created_at DESC')
->execute();
return count($mensajes);
}
}
这就是我在视图层中使用它的方式:
<?php foreach ($ots as $ot): ?>
....
<?php echo $ot->getNumberOfUnreadMsgs(); ?>
....
<?php endforeach; ?>
尝试用一个不以“get”开头的名称重新命名函数。
它似乎要搜索“numberofunread”属性…由于某种原因,代码找不到该方法 我注意到的一件事是,这个案子是不对的。它应该是Ot而不是Ot。不确定这是否导致了问题,但这肯定是错误的。在confif/doctor/ot.yml中,将第一行更改为ot并重建模型
在代码中进行必要的更新。它应该可以工作。听起来像是用一个_get()魔术方法重载,在这个方法中,任何getter调用都会尝试查找相应的属性,例如getFirstName()查找属性“first_name”。在本例中,它试图找到“未读MSG的数量”。我的第一个倾向是认为foreach循环中的ot对象与模型中的ot对象不同。foreach循环中的var_dump($ot)显示了什么?当我进行var_转储时,浏览器死机。我得到一个空白页,firebug向我显示此错误:未声明HTML文档的字符编码。如果文档包含US-ASCII范围之外的字符,则在某些浏览器配置中,文档将呈现乱码文本。页面的字符编码必须在文档或传输协议中声明。“如果您不能执行var_dump(),将使调试变得非常困难。谢谢,是的,模型的情况是错误的。这会导致太多问题。
Unknown record property / related component "number_of_unread_msgs" on "ot"