【问题标题】:Implementing multi-lang support in pyrocms在 pyrocms 中实现多语言支持
【发布时间】:2012-04-06 20:31:58
【问题描述】:

我一直在尝试基于 Sazans 库实现多语言支持,但查询似乎对我不起作用。

图书馆:https://github.com/sazan/MultiLang-Library-for-PyroCMS/blob/master/README

我的错误:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM (`default_navigation_links`) WHERE `navigation_group_id` = '1' ORDER BY `p' at line 2

SELECT *, translate("navigation", `id`, `"title"`, `"en"`, `title)` AS title FROM (`default_navigation_links`) WHERE `navigation_group_id` = '1' ORDER BY `position`

错误是查询引发的原因。我相信函数 translate 没有定义,这就是它抛出错误的原因。

The query: $this->db ->select('*, translate("navigation", id, "title", "'.CURRENT_LANGUAGE.'", title) AS title');

我尝试通过 phpmyadmin 在我的数据库上运行功能设置查询(在项目页面中找到)。当我添加它时 - 它没有返回错误,也没有“告诉我”它成功添加了函数。

知道我该怎么做吗?

【问题讨论】:

    标签: php codeigniter pyrocms


    【解决方案1】:

    问题不在于功能,与CI的Active Record类有关。 CI AR 类会自动转义您使用$this->db ->select(...) 选择的字段。因此,要使用我存储的功能,您必须通过将 AR 的选择功能的第二个参数设置为 false 来关闭自动转义:

    $this->db->select('*, translate("navigation", id, "title", "'.CURRENT_LANGUAGE.'", title) AS title', false);
    

    它会起作用的。干杯!

    【讨论】:

      猜你喜欢
      • 2011-11-08
      • 1970-01-01
      • 2011-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-25
      相关资源
      最近更新 更多