1

「国」という名前のデータベース テーブルを持つ「国」という名前のモデルがあります。

国モデルは次のとおりです。

<?
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() は翻訳可能なフィールドにも対応していますか?

4

0 に答える 0