我尝试在symfony3中使用ckeditor,我成功安装了它,但是当我尝试按照教程(https://symfony.com/doc/current/bundles/IvoryCKEditorBundle/index.html)中的描述在我的表单中使用它时出错:
$builder->add('content', CKEditorType::class);
但是会产生这个错误:
类型错误:参数1传递给 Ivory \ CKEditorBundle \ Form \ Type \ CKEditorType :: __ construct()必须是 Ivory \ CKEditorBundle \ Model \ ConfigManagerInterface的实例,无 给定
看起来,有一个问题,因为FormType不应该在其构造函数中要求params,我错了吗?
答案 0 :(得分:1)
IvoryCKEditorBundle中没有错误。如果你提供你的composer.json,命令bin/console debug:container
和bin/console config IvoryCKEditorBundle
的结果,它真的可以帮助我给你更准确的答案。
看起来,有一个问题,因为FormType不应该在其构造函数中要求params,我错了吗?
你错了,CKEditorType可能在其构造函数中要求params,并且它在当前版本中也是如此。
文件vendor/egeloen/ckeditor-bundle/Resources/config/form.xml
出了问题
它应该为CKEditorBundle配置(提供)服务依赖项,但它没有。
我会尝试为此捆绑包更新composer,清除缓存和调试服务容器配置,它应该如下所示:
⇒ composer update
⇒ bin/console cache:clear
⇒ bin/console debug:container|grep ivory
ivory_ck_editor.config_manager Ivory\CKEditorBundle\Model\ConfigManager
ivory_ck_editor.form.type Ivory\CKEditorBundle\Form\Type\CKEditorType
ivory_ck_editor.plugin_manager Ivory\CKEditorBundle\Model\PluginManager
ivory_ck_editor.renderer Ivory\CKEditorBundle\Renderer\CKEditorRenderer
ivory_ck_editor.styles_set_manager Ivory\CKEditorBundle\Model\StylesSetManager
ivory_ck_editor.template_manager Ivory\CKEditorBundle\Model\TemplateManager
ivory_ck_editor.twig_extension Ivory\CKEditorBundle\Twig\CKEditorExtension
答案 1 :(得分:1)
我有同样的错误并通过将CKEditorBundle添加到AppKernel来解决它。 CountZero's回答的评论中说明了这一点。您可以找到IvoryCKEditorBundle安装说明here。
class AppKernel extends Kernel
{
public function registerBundles()
{
$bundles = array(
new Ivory\CKEditorBundle\IvoryCKEditorBundle(),
// ...
);
// ...
}
}