CakePHP и поведение переводчика

Я французский разработчик, извините за плохой английский.

У меня проблема при вставке данных на нескольких языках на мой сайт. Я сказал, что моя таблица i18n была создана из консоли и вставлена ​​на одном языке, на котором она работает!

Это ошибка:

Ошибка базы данных

Ошибка: SQLSTATE [42S22]: столбец не найден: 1054 Неизвестный столбец «Массив» в «списке полей» Запрос SQL: INSERT INTO _1 _ (_ 2_) ЗНАЧЕНИЯ (массив) Примечание: если вы хотите настроить это сообщение об ошибке, создайте приложение / просмотр / Ошибки / pdo_error.ctp

Мой admin_add.ctp (просмотр файла / доступ)

foreach (Configure :: read ('Config.languages​​') as $lang) {
echo $this-> Form-> input ('Access.name.'. $lang, array ('label' => __ ('Name'). '(. $lang.') '));
}

Мой access.php (файл модели)

var $actsAs = array (
   'Translate' => array (
      'name' => '_name'
   )
);

Мой AccessesController.php (папка контроллера)

admin_add public function () {
   if ($this-> request-> is ('post')) {
      $this-> Access-> create ();
      $this-> Access-> locale = Configure :: read ('Config.languages​​');
      if ($this-> Access-> save ($ this-> request-> data)) {
         $this-> Session-> setFlash (__ ('The access has been saved'), 'notif');
         $this-> redirect (array ('action' => 'index'));
      }
      else {
         $this-> Session-> setFlash (__ ('The Access Could not be saved. Please, try again.'), 'notif', array ('type' => 'alert-error'));
      }
   }
}

В моем bootstrap.php (файл конфигурации)

Configure :: write ('Config.languages​​', array ('eng', 'eng'));
Configure :: write ('Config.language', 'eng');
Configure :: write ('App.encoding', 'utf-8');

Структура, полученная в почтовой форме, верна? / app / Controller / AccessesController.php (строка 46)

array (
   'Access' => array (
      'name' => array (
         'eng' => 'title',
         'eng' => 'title'
      )
   )
)

person user1977986    schedule 14.01.2013    source источник


Ответы (3)


использовать это

 $this->Model->save($this->request->data,false);
person Ryodo    schedule 25.05.2015

Структура сообщения кажется неправильной, например см. http://book.cakephp.org/2.0/en/models/saving-your-data.html#model-saveassociated-array-data-null-array-options-array

Это должно быть больше похоже на:

array (
   'Access' => array (
      'name' => 'a name',
      'title' => 'a title',
      'another model' => array(...)
      )
   )
)
person Yoggi    schedule 16.01.2013

Пожалуйста, используйте $this->Model->saveAll($this->request->data);

вместо $this->Model->save($this->request->data);

person Dester Dezzods    schedule 06.07.2014