0

私はフランスの開発者なので、英語が下手でごめんなさい。

サイトに複数の言語でデータを挿入すると問題が発生します。私のi18nテーブルはコンソールから作成され、それが機能する単一の言語に挿入されていると言いました。

これはエラーです:

データベースエラー

エラー:SQLSTATE [42S22]:列が見つかりません:1054不明な列「フィールドリスト」の「配列」SQLクエリ:INSERT INTO ` expandingCakePHP. Accessesname)VALUES(配列)注意:このエラーメッセージをカスタマイズする場合は、アプリ/表示/エラーを作成してください/ 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'
   )
);

My 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'
      )
   )
)
4

3 に答える 3

0

投稿構造が間違っているようです。たとえば、 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(...)
      )
   )
)
于 2013-01-16T18:52:12.897 に答える
0

使ってください$this->Model->saveAll($this->request->data);

それ以外の$this->Model->save($this->request->data);

于 2014-07-06T09:33:30.173 に答える