Bonjour,

Je viens vers vous parce que j'obtiens cette erreur:

Unable to emit response; headers already sent
RuntimeException

Sur CakePhP 3. j'essaie de mettre en place un système de langue via Ajax.
Tout marche bien, sauf avec le component que j'utilise.
Dès que je mets un

echo $this->Lang->get("Test");

Et bien j'obtiens l'erreur ci-dessus. Je précise que le component est bien appelé.
Voici le code de mon LangComponent.php:

<?php
namespace App\Controller\Component;

use Cake\Controller\Component;

class LangComponent extends Component
{

    public function get($name)
    {

        if (isset($name)) {

            if (isset($_COOKIE['MonProjet_Lang'])){

                if (file_exists(ROOT . DS . 'Langs' . DS . $_COOKIE['MonProjet_Lang'] . '.json')){

                    $json = file_get_contents(ROOT . DS . 'Langs' . DS . $_COOKIE['MonProjet_Lang'] . '.json');
                    $decode = json_decode($json, true);

                    return $decode[$name];

                }

            }

        }

    }

}
 ?>

Merci de votre aide,
Cordialement

4 réponses


Skraf
Auteur

Bonjour,
Merci de ton aide,
Mais comment renvoyer une réponse à l'action ? ^^

Merci de l'aide,
Cordialement

Bonsoir.
Où fais tu le echo $this->Lang->get("Test"); ?
Étant donné que les Components doivent être utilisé dans les Controllers, le fait que tu fasse un echo sur ton composant m'étonne beaucoup.

la méthode get ne prendrait pas en paramètre un ID ?

Skraf
Auteur

Bonjour,
Le

echo $this->Lang->get("Test");

Je le fais dans mon controller.
Cordialement