2013-07-01 1 views
0

Je tente d'écho à une variable de configuration dans une vue et je ne suis pas convaincu que je le fais correctement, mais en lisant les réponses ici, il semble que je le fais correctement.Echo config articles en vue?

Dans mon dossier config je le fichier suivant:

account/googleplus.php

Dans ce fichier je ma variable:

<?php if (! defined('BASEPATH')) exit('No direct script access allowed');  
$config['googleplus_client_id']  = "123456789"; 

Dans mon contrôleur, je puis charger le fichier de configuration comme si suivi la vue:

function __construct() 
    { 
     parent::__construct(); 
    $this->load->config(array('account/account', 'account/googleplus')); 
    } 
function index() 
{ 
    $this->load->view('sign_in'); 
} 

Puis, à mon avis, je fais écho à la variable comme ceci:

<?php echo $this->config->item('googleplus_client_id'); 

Le problème que je rencontre est qu'il ne fera pas écho au contenu. Dois-je transmettre les données à la vue d'une façon ou d'une autre ou devrait-elle simplement fonctionner par elle-même?

Son lancer l'erreur:

The configuration file Array.php does not exist.

+0

Quelle est la 'var_dump()' 'résultat de $ this-> config-> article ('googleplus_client_id')'? – Dormouse

+0

Salut, son bool (faux) – K20GH

Répondre

2

Je pense que la raison de la variable $this, il est par rapport à l'endroit où il est appelé (dans un contrôleur, un modèle ou une vue), de sorte $this dans un contrôleur est différent avec $this dans une vue.

également, une vue n'est généralement pas une classe, donc $this ne serait pas une classe.

au lieu vous pouvez passer votre config comme:

contrôleur

:

function __construct() 
{ 
    parent::__construct(); 
    $this->load->config('account/googleplus'); 
} 
function index() 
{ 
    $data = array('googleplus_client_id' => $this->config->item('googleplus_client_id')); 
    $this->load->view('sign_in', $data); 
} 

Vue:

<?php echo $googleplus_client_id; 
+0

Merci. J'ai eu ce travail en utilisant votre méthode, mais j'ai également trouvé que vous ne pouvez pas charger les fichiers de configuration dans un tableau, ils doivent être chargés individuellement. – K20GH

+0

car il n'y a pas de documentation sur le chargement de fichiers de configuration sur un tableau, je suppose qu'il n'est pas actuellement supporté, mais vous pouvez étendre le chargeur de configuration actuel à vos besoins, [extension des classes de base] (http://ellislab.com/ codeigniter/user-guide/general/core_classes.html) – am05mhz

+1

@ K20GH Utilisez '$ this-> config-> load ('compte/googleplus', TRUE);' à la place. Il charge le compte/googleplus.php' fichier de configuration et le stocke dans un tableau avec ce prototype: '$ this-> config ['compte/googleplus'];'. [référence] (http://ellislab.com/codeigniter/user-guide/libraries/config.html). –

2

En effet, $ this-> load-> config() ne prendre les paramètres du tableau. Vous devriez faire

$this->load->config('account/account'); 
$this->load->config('account/googleplus'); 

dans votre contrôleur. Ensuite, vous pouvez appeler

$this->config->item() 

dans vos fichiers de vue. Et d'après la documentation en here, devrait-il être

$this->config->load() 

plutôt que

$this->load->config()