2013-07-01 2 views
0

Я пытаюсь отобразить переменную конфигурации в представлении, и я не убежден, что делаю это правильно, но, читая ответы, кажется, что я делаю это правильно.Элементы конфигурации Echo в поле зрения?

В моей папке конфигурации У меня есть следующий файл:

account/googleplus.php

в этом файле у меня есть переменная:

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

В мой контроллер, я затем загрузить конфигурационный файл, как так, за которой следует вид:

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

Тогда на мой взгляд, я повторяю эту переменную следующим образом:

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

Проблема, с которой я сталкиваюсь, заключается в том, что она не будет выводить содержание. Должен ли я передавать данные на просмотр каким-то образом или должен ли он просто работать сам?

Его метание ошибка:

The configuration file Array.php does not exist.

+0

Что '' var_dump результат (а) в '$ this-> config-> пункт ('googleplus_client_id')'? – Dormouse

+0

Привет, его bool (false) – K20GH

ответ

2

я думаю, что его переменное из $this, это относительно того, где она называется (в контроллере, модели, или вид), так $this в контроллере другой с $this на вид.

также, как правило, не класс, поэтому $this не был бы классом.

вместо этого вы могли бы передать ваш конфигурационный файл:

контроллер:

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); 
} 

вид:

<?php echo $googleplus_client_id; 
+0

Спасибо. Я получил эту работу, используя ваш метод, однако также обнаружил, что вы не можете загружать файлы конфигурации в массив, их нужно загружать отдельно. – K20GH

+0

, так как нет документации по загрузке файлов конфигурации по массиву, я предполагаю, что он не поддерживается в настоящий момент, вместо этого вы можете расширить текущий загрузчик конфигурации до ваших потребностей, [расширение основных классов] (http://ellislab.com/ codeigniter/user-guide/general/core_classes.html) – am05mhz

+1

@ K20GH Используйте '$ this-> config-> load ('account/googleplus', TRUE); вместо этого. Он загружает 'account/googleplus.php' и сохраняет его в массиве с этим прототипом: '$ this-> config ['account/googleplus'];'. [Ссылка] (http://ellislab.com/codeigniter/user-guide/libraries/config.html). –

2

Это происходит потому, что $ this-> load-> конфигурации() не делает принимать параметры массива. Вы должны сделать

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

в вашем контроллере. Затем вы можете позвонить по телефону

$this->config->item() 

в вашем поле зрения. И в соответствии с документацией в here, она должна быть

$this->config->load() 

, а не

$this->load->config() 
Смежные вопросы