2014-03-04 140 views
0

我需要将数据库中Ext“language”列的内容传递到包含各种语言(“en,fr等)”的控制器。 这使我可以发送正确翻译语言用户的电子邮件。 也就是说,在我的模型中,我必须将结果传递给控制器​​并将其存储在名为$ language的变量中。这个变量包含“en,fr等..”:$ message = sprintf($ this-> lang-> line('messaggio.email'),$ language,$ key);Codeigniter - 将模型到控制器的结果传递给变量

电子邮件的发送完美,除了我不能设置变量$语言。 我得到这个错误: “严重性:注意 消息:数组字符串转换”

如何设置变量$语言?

这是模型:

public function get_dati() { 
    $this->load->database(); 

    $query = $this->db->query("SELECT * FROM temp_users "); 

    foreach ($query->result_array() as $row) { 
     echo $row['lingua']; 
    } 


    $res = array(
     'lingua' => $row['lingua'] 
    ); 

    return $res; 
} 

这是我的控制器:

$this->load->model('model_users_azienda'); 
$language['teste'] = $this->model_users_azienda->get_dati(); 
// Here I insert the content from database in the variable $ language 
$message = sprintf($this->lang->line('messaggio.email'), $language, $key); 
+0

你不能在'public function get_dati()'方法中回显。同时检查sprintf字符串'messaggio.email',因为它可能试图将$ language用作字符串而不是数组。 – mic

+0

我觉得如果我打印结果。 – user3311699

+0

如何将数组转换为字符串? – user3311699

回答

0

下面的工作。模型函数返回一个数组。所以你需要从数组中使用适当的键来获得语言。

$this->load->model('model_users_azienda'); 
$lang = $this->model_users_azienda->get_dati(); 
// Here I insert the content from database in the variable $ language 
$message = sprintf($this->lang->line('messaggio.email'), $lang['lingua'], $key); 
+0

非常感谢!有用! 我用一个首字母大写字母 返回查询“En,En,Fr等...”的值而不是“en,fr等..”我会试着找出原因,再次感谢! – user3311699

相关问题