2017-01-25 4 views
0

Я использую последний CodeIgniter 3.1.3CodeIgniter lang-> Нагрузка (ОШИБКА)

Существует инструкция, как использовать языки https://www.codeigniter.com/userguide3/libraries/language.html#handling-multiple-languages

$idiom = $this->session->get_userdata('language'); 
$this->lang->load('error_messages', $idiom); --> gives ERROR (home_view line 14) 
$oops = $this->lang->line('message_key'); 
echo $oops; 

но если я пишу, что строки кода я получаю следующее сообщение об ошибке:

A PHP Error was encountered

Severity: Warning

Message: preg_match() expects parameter 2 to be string, array given

Filename: core/Lang.php

Line Number: 109

Backtrace:

File: .../application/views/home_view.php Line: 14 Function: load

File: .../controllers/Home.php Line: 14 Function: view

File: .../project/index.php Line: 315 Function: require_once

Если удалить

$idiom = $this->session->get_userdata('language'); 
$this->lang->load('error_messages', $idiom); --> ERROR (home_view 

и место в autoload.php

$autoload['language'] = array('error_messages'); 

все нормально.

Но я не хочу автозагружать все языковые файлы, так как я не знаю, нуждается ли пользователь в каждом из них.

Любой может помочь?

благодарит

+0

сделал установить сеанс .. –

+0

проверить данные сеанса, если его массив так, пожалуйста, преобразовать в строку или получить конкретные данные из сессии –

+0

скважины, благодаря было проблемой – flashore

ответ

0

Вы можете достичь как this.Access переменной сеанса с помощью $this->session->userdata('item_name').

$idiom = $this->session->userdata('language'); 
$this->lang->load('error_messages', $idiom); 
$oops = $this->lang->line('message_key'); 
echo $oops; 

ИЛИ

$this->config->set_item('language', $idiom);//dynamically set language 
$this->lang->load('error_messages');//load lang file 

$oops = $this->lang->line('message_key'); 
echo $oops; 

Надеется, что это помогает.

Более посмотреть здесь https://codeigniter.com/userguide3/libraries/sessions.html

+0

сессии это была проблема с сеансом. Данные сеанса были неправильно установлены – flashore

+0

получить переменную сеанса с помощью 'userdata()' not 'get_userdata()'. –

+0

см. В ответе. Надеюсь, вы получите правильную переменную. –