当前位置: 首页 > 知识库问答 >
问题:

可翻译原则数组域

郜琦
2023-03-14

我有一个工作实体,它有一个字段(类型为ArrayCollection),该字段与doctrine映射到一个类型为array的列。

现在我需要这个字段是可翻译的(条令行为),但在获取未翻译的区域设置时,我得到一个无法将数据库值“”转换为条令类型的数组ConversionException。

如何保持数组的功能并使其可翻译?


php prettyprint-override">/**
 * @var ArrayCollection
 *
 * @Gedmo\Translatable
 * @ORM\Column(name="categories", type="array")
 */
private $categories;


// ... Controller ProductController nitty gritty

public function showAction(Request $request, $id, $locale)
{
    // omitted stuff, load $product by $id

    $product->setTranslatableLocale($locale); // load translations
    $em->refresh($product);

    return $this->render('AcmeExampleBundle:Product:show.html.twig', [
        'product' => $product
    ]);
}


转换异常

无法将数据库值“”转换为条令类型数组


异常堆栈跟踪:pastebin

共有2个答案

曾翰飞
2023-03-14

我错了。我试图设置我自己的{locale}路由段,而我应该使用本机{_locale}(注意下划线-留档)。

如果您让symfony通过路由处理区域设置,Translatable将透明地处理实体翻译(包括表单提交),并且不需要调用$实体::setTranslatableLocale()也不需要调用EntityManager::刷新()

不需要对数组字段进行特殊处理,它们可以无缝地进行开箱即用的转换。

史经业
2023-03-14

看起来您正试图将数据库中的空字符串转换为数组。问题来自类别列。此列包含空值,而不是序列化的空数组。

一个可能的解决方案是用预期的数组替换空字符串,如下所示:

UPDATE `product` SET categories="a:0:{}" WHERE categories= "";

希望这能有所帮助。

 类似资料:
  • 文档结构 每一篇文章分为五个部分:中英对照表、正文、引用、注解、总结; 中英对照表:文章中出现过的专用名词在中英对照表中说明,使用list方式呈现。 正文:正文位于第二部分,参考下边正文部分内容。 引用:如果系统中存在外部链接,使用引用格式处理,引用使用脚标(参考本文最下边):[1]。 注解:注解中添加一些作者辅助理解的文字说明,正文保持干净整洁,注解可直接参考注解部分,使用圆括号:(1)。 总结

  • 您可使用 Google Translate™ 应用程式翻译词组: 按下侧边电源按钮打开应用程式菜单,找到并轻触Translate(翻译)。 您将看到翻译源语言与目标语言这两种语言。您可通过轻触某一语言的名称来更改语言。 轻触“麦克风”图标并说出您想翻译的词组。 译文将显示在屏幕上。

  • 问题内容: 我想模拟在CSS 中使用的属性。 根据MDN,这很有可能: 通过首先使用属性的取反值转换元素,然后应用元素的变换,然后通过属性值进行转换,来应用此属性。 但是,当我尝试时,会得到不正确的结果。这两个矩形显然不相同: 我已经尝试了很长时间没有运气寻找答案了,在我看来,这应该是相对简单的,我只是想不通。 问题答案: 您几乎不错,但是有两个错误。您需要反转翻译,并且需要更改第二个翻译的翻译。

  • 实际上,我试图增加PDPage对象的cropbox。好吧,没有挑战。但页面内容仍保留在CropBox的左下角。我要它集中在新的cropbox空间。 我知道所有的内容是绝对定位在PDF。所以我的问题是:有没有一种方法使用PDFBox来翻译我的PDPage的原点(x,y)或者内容元素? 问候 汉斯

  • 本文向大家介绍SVG 翻译,包括了SVG 翻译的使用技巧和注意事项,需要的朋友参考一下 示例 将矩形向右移动10个单位,向下移动20个单位: 将其水平移动0个单位,向上移动20个单位: 将其向左移动10个单位,垂直移动0个单位:            

  • 在学习计算机科学概念时,学生不必在学习英语的同时费劲。 如果您以英语以外的其他语言为母语,那么我们很感谢您为世界上95%的母语不是英语的人所提供的帮助。 Translatewiki Blockly和Blockly游戏的翻译均由Translatewiki处理。 注册成为translatewiki.net的翻译。 做一些测试翻译以获得翻译许可(在右上角选择一种语言)。 简要阅读Blockly的翻译风格