Hi,

Here's an example:

I have an element which generates a navigation menu.

This is the code in the element:
App::import('Model', array('Shop.ShopCategory'));
$menuObj = new ShopCategory();
$nav_top = $menuObj->nav_top('');
ShopCategory has a translated 'name'-field which is also the models 
displayField.

In the element I have a:
foreach ($nav_top as $menuItem) {} loop

When I call this element from any other controller I can access the value 
of the name-field within this foreach-loop by:
$menuItem['ShopCategory']['name'] 
or $menuItem['ShopCategory'][$menuObj->displayField]

But when I'm in a page from the same 'shop_categories'-controller then 
$menuItem['ShopCategory']['name'] 
or $menuItem['ShopCategory'][$menuObj->displayField] (and all other 
translated keys) are empty.
But then I can find the desired value in 
$nav_top[0]['ShopCategory'][0]['ShopCategory__i18n_name']

Can anyone tell me what goes wrong here?

Thanx in advance.



On Tuesday, October 21, 2014 9:11:39 PM UTC+2, José Lorenzo wrote:
>
> First time I see this. What Cake version are you using?
>
> On Monday, October 20, 2014 8:56:39 AM UTC+2, Lucky1968 wrote:
>>
>> Hi,
>>
>> Is there anyone who can help me with this?
>>
>> Thanx.
>>
>> On Wednesday, October 1, 2014 9:32:05 AM UTC+2, Lucky1968 wrote:
>>>
>>> Hi,
>>>
>>> I'm using i18n in my application and it seems that in certain views I 
>>> can use $array['translated_field'] as in other views I need to use 
>>> $array[0]['Model__i18n_translated_field'] to get the same information 
>>> coming from the same find in the same model.
>>>
>>> Can anyone tell me why this is?
>>>
>>> This is my code:
>>>
>>> MY MODEL (SettingsSite.php):
>>> <code>
>>> class SettingsSite extends AppModel {
>>>
>>> public $actsAs = array(
>>> 'Translate' => array(
>>> 'slogan'
>>> )
>>> );
>>>
>>> ...
>>>
>>> public function first_site() {
>>> return $this->find('first', array('recursive' => -1));
>>> }
>>>
>>> }
>>> </code>
>>>
>>> MY VIEWS:
>>> <code>
>>> App::import('Model', array('SettingsSite'));
>>> $settingsSiteObj = new SettingsSite();
>>> $first_site = $settingsSiteObj->first_site();
>>> </code>
>>>
>>> RESULTS:
>>> In (almost) all my view files within my main application and in all my 
>>> view files in plugins I get the results like this:
>>>
>>> array(
>>>     'SettingsSite' => array(
>>>             ...
>>>             'locale' => 'eng',
>>>             'slogan' => 'Translated Slogan'
>>>     )
>>> )
>>>
>>> But in (apparently form-) view files in my main application I get the 
>>> results like this:
>>>
>>> array(
>>>     'SettingsSite' => array(
>>>             ...
>>>             'locale' => 'eng',
>>>             'slogan' => ''
>>>     ),
>>>     (int) 0 => array(
>>>             'SettingsSite__i18n_slogan' => 'Translated Slogan'
>>>     )
>>> )
>>>
>>> As said, all the code in the view files is identical and therefor 
>>> pointing to the same function in the same model. And the a.m. result code 
>>> is the result of debug() within the models function, so IMHO, shouldn't be 
>>> influenced by anything else in the view file.
>>>
>>> Can someone tell me why this is?
>>>
>>> Thanx.
>>>
>>> Luc
>>>
>>

-- 
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP

--- 
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/cake-php.
For more options, visit https://groups.google.com/d/optout.

Reply via email to