CakePHP-Fr.Org

Forum francophone du Framework CakePHP

Vous n'êtes pas identifié.

#1 07-09-2016 07:42:24

Bed0sk!l
Chouquette
Date d'inscription: 07-09-2016
Messages: 2

CakePHP 3 Traduction avec associations en une requête

Bonjour, j'ai mis un système de gestion des contenus multi-langues sur mon backoffice et celui ci fonctionne très bien j’ai suivi la doc :
Cakephp 3 Doc.
Cependant j’aimerais traduire en cascade des elements associés à mon model.

J’ai des Posts qui ont des ,Metas
Voici ce que j’envoi à mon controller Posts action add()

debug()

Code: php

  1. 'fr' => [
  2.         'title' => 'Titre en Français',
  3.         'slug' => '',
  4.         'body' => '<p>... FR</p>',
  5.         'online' => '0',
  6.         'category_id' => '1',
  7.         'type_id' => '2',
  8.         'metas' => [
  9.             (int) 0 => [
  10.                 'meta_key' => 'picture',
  11.                 'type_id' => '2',
  12.                 'meta_value' => 'url de l'image en FR'
  13.            ],
  14.            (int) 1 => [
  15.                'meta_key' => 'laureat_actuel',
  16.                'type_id' => '2',
  17.                'meta_value' => 'url de la photo en FR'
  18.            ],
  19.            (int) 2 => [
  20.                'meta_key' => 'date',
  21.                'type_id' => '2',
  22.                'meta_value' => 'date en FR'
  23.            ],
  24.            (int) 3 => [
  25.                'meta_key' => 'nom',
  26.                'type_id' => '2',
  27.                'meta_value' => 'Nom en FR'
  28.            ],
  29.            (int) 4 => [
  30.                'meta_key' => 'bio',
  31.                'type_id' => '2',
  32.                'meta_value' => 'Bio en FR'
  33.            ]
  34.        ]
  35.    ],
  36.    'gb' => [
  37.        'title' => 'Titre en GB',
  38.        'slug' => '',
  39.        'body' => '<p>... GB</p>',
  40.        'metas' => [
  41.            (int) 0 => [
  42.                'meta_key' => 'picture',
  43.                'type_id' => '2',
  44.                'meta_value' => 'url en GB'
  45.            ],
  46.            (int) 1 => [
  47.                'meta_key' => 'laureat_actuel',
  48.                'type_id' => '2',
  49.                'meta_value' => 'photo en GB'
  50.            ],
  51.            (int) 2 => [
  52.                'meta_key' => 'date',
  53.                'type_id' => '2',
  54.                'meta_value' => 'date GB'
  55.            ],
  56.            (int) 3 => [
  57.                'meta_key' => 'nom',
  58.                'type_id' => '2',
  59.                'meta_value' => 'nom GB'
  60.            ],
  61.            (int) 4 => [
  62.                'meta_key' => 'bio',
  63.                'type_id' => '2',
  64.                'meta_value' => 'bio GB'
  65.            ]
  66.        ]
  67.    ]

Voilà comment je sauvegarde mes traductions :

Code: php

  1. $post = $this->Posts->newEntity($this->request->data, ['translations' => true]);
  2. $post = $this->Posts->patchEntity(
  3.     $post,
  4.     $this->request->data,
  5.     [
  6.         'associated' => ['Metas']
  7.     ]
  8. );
  9.  
  10.  
  11. $translations = $this->request->data;
  12.  
  13. foreach ($translations as $lang => $data) {
  14.     $post->translation($lang)->set($data, ['guard' => false]);
  15. }
  16.  
  17. $this->Posts->save($post);

Pour le Post la traduction est opérationnel, cependant pour les Metas c’est pas bon, j’ai bien l’entrée dans la table Metas mais pas la correspondances dans la table i18n.

Connaissez vous un paramètre ou un argument à passer pour forcer la prise en charge des traductions des models associés ?

Dernière modification par Bed0sk!l (12-09-2016 07:43:53)

Hors ligne

 

#2 12-09-2016 05:43:24

Bed0sk!l
Chouquette
Date d'inscription: 07-09-2016
Messages: 2

Re: CakePHP 3 Traduction avec associations en une requête

Personne ? Cette question et donc intéressante wink

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB
Traduction par FluxBB.fr