有人可以帮我解决这个错误。
类型错误:传递给Twig_Extensions_Extension_Date :: __ construct()的参数1必须实现接口Symfony \ Component \ Translation \ TranslatorInterface,给出的VojtaSvoboda \ TwigExtensions \ Classes \ TimeDiffTranslator实例,在plugins \ vojtasvoboda \ twigextensions \
中调用我从这条消息中得知的是,vojtasvoboda \ twigextensions \ Plugin.php中的getTimeFilter方法传递的类型为'time_diff_traslator',但所需的类型为TranslatorInterface。
$ translator = $ this-> app-> make('time_diff_translator'); $ timeExtension = new Twig_Extensions_Extension_Date($ translator);
下面是Twig_Extensions_Extension_Date的构造函数,您可以看到它采用TranslatorInterface类型的参数,但Plugin.php传递的是另一个参数。 / ** * @var TranslatorInterface * / 私人$翻译;
public function __construct(TranslatorInterface $translator = null)
{
$this->translator = $translator;
}
/**
* {@inheritdoc}
答案 0 :(得分:0)
我建议更新你的插件,就像你在git diff中看到的旧版本一样,它们没有实现接口(https://github.com/vojtasvoboda/oc-twigextensions-plugin/commit/e6feb178d40ee0d000d0a6f7d2462d6d70e4194e#diff-325d760197f3aac320381cc8ddd52660)
在新版本中,他们已经实现了正确的界面,所以新版本应该有效。
回购中的旧代码
class TimeDiffTranslator extends Translator
repo中的新代码
...
use Symfony\Component\Translation\TranslatorInterface;
...
TimeDiffTranslator extends Translator implements TranslatorInterface
因此,如果您使用新代码更新扩展程序 TimeDiffTranslator 是 TranslatorInterface 的类型,构造函数将接受它,请使用直接10月cms后端或使用git存储库进行更新你的插件。
<强>更新强>
请按照给定的屏幕截图,您可以更新您的octber cms版本以及所有插件 (确保您没有进行任何核心更改以及市场地点插件更改,因为此更新将覆盖它们)
如果不能正常工作,请告诉我。