开发者

Cake php default bahaviour for Translate behaviour not working

开发者 https://www.devze.com 2023-04-04 17:38 出处:网络
Can anyone suggest me why when there are no translation for a field it is returned empty, and not with the default translation?

Can anyone suggest me why when there are no translation for a field it is returned empty, and not with the default translation?

I will appreciate all suggestions...

Can`t tell what part of my code you want to see, because it is all straight forward from www.book.cake.org. So i pasting some code:

Model definition:

<?php
class Article extends AppModel
{
    var $useTable = 'nc_articles';
    var $name = 'Article';
    var $actsAs = array(
        'Translate' => array(
        'title', 'content', 'meta_key_words','meta_description'
        )
    );
    // Use a different model
    var $translateModel = 'ArticlesI18n';
    // Use a different table for translateModel
    var $translateTable = 'nc_articles_i18ns';
    var $belongsTo = array(
        'Author' => array('className' => 'User',
            'foreignKey' => 'author_id',
            'conditions' => '',
            'fields' => array(),
            'order' => '',
            'counterCache' => ''),       
        'Modifier' => array('className' => 'User',
            'foreignKey' => 'modifier_id',
            'conditions' => '',
            'fields' => array(),
            'order' => '',
            'counterCache' => ''),   
        'Category' => array('className' => 'ArticlesCategory',
            'foreignKey' => 'category_id',
            'conditions' => '',
            'fields' => array(),
            'order' => '',
            'counterCache' => ''),   
        'Layout' => array('className' => 'Layout',
            'foreignKey' => 'layout_id',
            'conditions' => '',
            'fields' => array(),
            'order' => '',
            'counterCache' => ''),        
        );
    var $hasMany = array(
        'Comments' => array(
            'className' => 'ArticlesComment',
            'foreignKey' => 'article_id',
            'conditions' => array(),
            'order' => '',
            'limit' => '',
            //'dependent'=> true When dependent is set to true, recursive model deletion is possible. In this example, Comment records will be deleted when their associated User record has been deleted. 
            )
        ); 


}
?>

And then the function where I am changing Language:

fun开发者_C百科ction setLanguage($languageCode='pol')
{
    $this->Session->write('Config.language', $languageCode);
    $this->redirect($this->referer());
}

Would you like to see something more?


Let me answer my own question. There were few more things I had to write more. First of all I had to declare my Config.language in core.php then for Every model which is translated I had to declare a local variable which is an array of language codes

$this->Article->array('en','pol');

And that's how I managed the problem. But now queries for translation are very long and I am facing an optimization problem.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号