「国」という名前のデータベース テーブルを持つ「国」という名前のモデルがあります。
国モデルは次のとおりです。
<?
class Country extends CountryAppModel {
public $name = 'Country';
public $actsAs = array(
'Translate' => array('title', 'description')
);
}
?>
CakeBook 2.0 の引用 (http://book.cakephp.org/2.0/en/core-libraries/behaviors/translate.html)
TranslateBehavior が翻訳するフィールドを定義するときは、翻訳されたモデルのスキーマからそれらのフィールドを必ず省略してください。フィールドをそのままにしておくと、フォールバック ロケールでデータを取得するときに問題が発生する可能性があります。
そのため、「countries」テーブルからタイトルと説明のフィールドを削除しました。もちろん、コマンド ラインで i18n テーブルを作成しました (更新されたバージョンがあることを確認するため)。
次のコードを使用して保存しようとすると、DB に保存されず、何も起こりません。
$this->Country->locale = $_POST['language'];
$this->Country->create();
$this->Country->save($this->request->data)
私は何が間違っているのですか??
「Model」クラスの save() メソッドを実行しましたが、「countries」テーブルのスキーマには primaryKey (id) 以外のフィールドがないため、更新/作成コマンドを実行していません。 save() は翻訳可能なフィールドにも対応していますか?