CakePHP 2.x在循环中使用i18n重新获取数据

时间:2015-07-23 00:45:52

标签: loops cakephp internationalization cakephp-2.1

我为每个Feature.feature_type_id循环播放功能(belongsTo FeatureType)和find()FeatureType.name。 我的第一个记录是正确的(使用i18n翻译),但在其余部分中,i18n翻译不到位,但作为单独的记录给出。

我做错了什么?

这是我的结果表的调试:

array(
    'FeatureType' => array(
        'id' => '28',
        'name' => 'kolor suwaka',
        'comment' => 'kolor suwaka etui notebook',
        'locale' => 'pol'
    )
)

array(
    'FeatureType' => array(
        'id' => '7',
        'name' => '',
        'comment' => '',
        'locale' => 'pol'
    ),
    (int) 0 => array(
        'FeatureType__i18n_name' => 'kolor materiału',
        'FeatureType__i18n_comment' => 'gra w klasy'
    )
)

array(
    'FeatureType' => array(
        'id' => '11',
        'name' => '',
        'comment' => '',
        'locale' => 'pol'
    ),
    (int) 0 => array(
        'FeatureType__i18n_name' => 'kolor',
        'FeatureType__i18n_comment' => 'kółko i krzyżyk (jasnoszare i ciemnoszare)'
    )
)

array(
    'FeatureType' => array(
        'id' => '27',
        'name' => '',
        'comment' => '',
        'locale' => 'pol'
    ),
    (int) 0 => array(
        'FeatureType__i18n_name' => 'obwód głowy',
        'FeatureType__i18n_comment' => 'rozmiar kapelusza czarownicy'
    )
)

这是代码:

$features_str = "";
if (!empty($product['Features'])) {
    foreach ($product['Features'] as $featureIndex => $feature) {
        $featureTypeModel = new FeatureType();
        $feature_type = $featureTypeModel->find("first", array("conditions" => array("FeatureType.id" => $feature['feature_type_id'])));
        if (strlen($features_str) > 0) $features_str .= ", ";
        $features_str .= $feature_type['FeatureType']['name'] . ': ' . $feature['name'];
        unset($featureTypeModel);
    }
}

0 个答案:

没有答案