2016-07-22 2 views
1

Vous ne savez pas si Smarty est en train de charger, mais il affiche {$ title} et {$ username} directement sur la page et n'utilise pas ce qui est défini comme variable.FuelPHP et Smarty - Les variables ne fonctionnent pas

j'ajouté en composer.json

"Smarty/Smarty": "*"

Je cours php composer.phar update et aussi install:

Je suis chargement dans la configuration. fichier php l'analyseur syntaxique selon

'packages' => array(
    'orm', 
    'auth', 
    'parser', 
), 

Dans mon co ntroller dashboard.php

public function action_index() 
    { 
     $data = [ 
     'bodyclass' => "dashboard", 
     'title' => "Dashboard", 
     'username' => "James" 
    ]; 
     $view = Response::forge(View::forge('dashboard/index.tpl', $data)); 

     $this->template->subnav = array('dashboard'=> 'active'); 
     $this->template->content = $view; 
    } 

et dans mon dossier index.tpl Je

{$ title} {$ username}

Il est juste pour le test, ne semble toutefois pas travaille

+0

Désolé pour la réponse tardive, vient de le voir. Mis à part le fait que vous ne devriez pas envelopper la vue dans une réponse, je ne vois rien de mal immédiatement. Vous êtes sûr que le double accolade est utilisé comme délimiteur, et non l'accolade simple (qui est par défaut, voir le fichier de configuration parser.php dans le paquet analyseur). – WanWizard

Répondre

1

Le package Parser de FuelPHP gère le rendu des vues à l'aide des moteurs de gabarit.

Comme vous l'avez déjà fait, vous devez d'abord activer le paquet Parser dans fuel/app/config.php en vous assurant que le paquet d'analyseur est ajouté à always_load

'always_load' => array(
    'packages' => array(
     'parser', 
    ), 
), 

Parser utilise l'extension du fichier pour déterminer quel moteur analyseur à utiliser. Dans votre cas, votre fichier, dashboard/index.tpl utilise une extension smarty typique .tpl, mais FuelPHP n'a pas de modèle enregistré pour cette extension.

FuelPHP utilise .smarty par défaut.

Donc, vous avez 2 options.

  1. Changer l'extension de fichier de votre modèle, en adhérant à la valeur par défaut FuelPHP
  2. modifier la configuration de FuelPHP utiliser Smarty pour les fichiers tpl

Heureusement les deux sont faciles. Si vous choisissez d'aller avec l'option 2, consultez le default configuration definition.

Vous pouvez remplacer les valeurs par défaut en utilisant un fichier de configuration situé à fuel/app/config/parser.php

return array(

    // Overrides default smarty extension 
    'extensions' => array(
     'tpl' => 'View_Smarty', 
    ) 
);