У меня есть вкладка и на каждой вкладке множество одинаковых полей, которые отличаются только языком. Например, у меня есть имя и описание поля в каждой вкладке, и я хотел бы создать каждый вход, используя форму помощника CakePHP в следующем виде:Сохранение нескольких переводов сразу с помощью CakePHP
English Tab
$this->Form->input("Service.en.name");
$this->Form->input("Service.en.description");
французский Tab
$this->Form->input("Service.fr.name");
$this->Form->input("Service.fr.description");
После этого (это может быть неправильно, но это сработало) я задал значение определенного поля как массив, содержащий значения, введенные различными локалями.
Я использую TranslateBehavior, и все прошло хорошо, пока я не обновился до самого последнего из CakePHP (2.4.3 из 2.3). Теперь, когда я пытаюсь сэкономить, я получаю сообщение об ошибке: Неизвестная колонка «Array»
Я ничего не могу найти при сохранении нескольких языков одновременно. Благодарим за любую идею!!
Update 1
Я также попытался переместить локаль до конца так:
$this->Form->input("Service.name.en")
С такими же результатами
Update 2
Согласно Xdebug , это SQL:
UPDATE `cc_dev`.`services` SET `name` = Array, `description` = Array, `duration` = 60, `category_id` = 1, `backend_only` = "0", `id` = 1, `vendor_id` = 116, `updated` = "2013-11-26 18:46:11" WHERE `cc_dev`.`services`.`id` = "1"
И это происходит во время сохранения. Я просто проверяю, чтобы данные запроса сначала не были пустыми, и ничего больше.
if (!empty($this->request->data)) {
$this->Service->save($this->request->data);
}
Update 3
Содержание представленных данных запроса, в настоящее время в формате, указанном в Update 1
<pre>Array (
[Service] => Array
(
[name] => Array
(
[en] => One-to-One Session
[fr] => Séance individuelle
)
[description] => Array
(
[en] => Choose a personalized training session of 45 minutes.
[fr] => Choisissez une séance de formation individuelle de 45 minutes.
)
[duration] => 60
[category_id] => 1
)
)
</pre>
Не могли бы вы разместить SQL-запрос, который Cake пытается выполнить, но не удается? Кроме того, можете ли вы разместить строки (строки) кода, относящиеся к генерируемой ошибке (вы сказали, что это происходит, когда вы пытаетесь сохранить)? – iso27002
Я обновил свое сообщение, чтобы включить запрошенные детали. – riula
Последний запрос: содержимое '$ this-> request-> data'. – iso27002