我已经连续7个小时了。在她睡觉之前,妻子离开了我的工作并且醒来了同样的视线=沮丧!
任务看似简单,使FOSMessageBundle可以使用或不使用FOSCommentBundle。我首先尝试了一起,然后一个人独自尝试,并在所有3个案例中继续得到相同的错误。
FatalErrorException:编译错误:Acme \ MessageBundle \ Entity \ Thread :: setCreatedBy()声明必须与FOS \ MessageBundle \ Model \ ThreadInterface :: setCreatedBy(FOS \ MessageBundle \ Model \ ParticipantInterface $参与者)兼容.. 。\ src \ Acme \ MessageBundle \ Entity \ Thread.php第15行
以下是第15行。
注意:我已阅读并遵循文档到最后一个完整停止。我的代码就像文档一样。但为什么它不能工作?我正在使用最新的Symfony 2.5并清理安装捆绑包。任何帮助都是永远受到赞赏的。感谢。
<?php
// src/Acme/CommentBundle/Entity/Thread.php
namespace Acme\CommentBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use FOS\CommentBundle\Entity\Thread as BaseThread;
/**
* @ORM\Entity
* @ORM\ChangeTrackingPolicy("DEFERRED_EXPLICIT")
*/
class Thread extends BaseThread
{
答案 0 :(得分:0)
错误消息Declaration of … must be compatible with …
是一条通用的PHP消息,表明被覆盖的方法与其父或接口不兼容。
子方法必须与父项具有完全相同的参数,如果参数是类型提示,则为同一类的child method must type-hint。
在您的情况下,您可能不会在ParticipantInterface
方法中要求setCreatedBy
兼容对象,在这种情况下,您需要像这样修复它...
public function setCreatedBy(ParticipantInterface $Participant)
{
// …
}
...或者你错过了ParticipantInterface
的名称空间导入:
use \FOS\MessageBundle\Model\ParticipantInterface;
或两者兼而有之。