Внедрение многоязыковой поддержки в пироках - PullRequest
0 голосов
/ 03 февраля 2012

Я пытался реализовать многоязыковую поддержку на основе библиотеки 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. Когда я его добавлял - он не возвращал ошибку и не «говорил мне», что ему удалось добавить функцию.

Есть идеи, что мне делать?

1 Ответ

1 голос
/ 31 марта 2012

Проблема не в функции, а в классе активной записи CI. Класс CI AR автоматически экранирует поля, выбранные вами с помощью $this->db ->select(...). Поэтому, чтобы использовать мою сохраненную функцию, вам нужно отключить автоматическое экранирование, установив для второго параметра функции выбора AR значение false:

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

И это будет работать. Ура! * * 1005

...