我们假设我有这个控制器功能
public function index(){
$this->load->model('model_users');
$clienteemail = $this->session->userdata('email');
$cliente['nome'] = $this->model_users->lettura_dati($clienteemail);
$data['title']='La Giumenta Bardata Dashboard'; //array per titolo e dati passati
$this->load->view('auth/template/auth_header', $data);
$this->load->view('auth/template/auth_nav', $cliente);
$this->load->view('auth/clienti/auth_sidebar');
$this->load->view('auth/clienti/client_dash');
$this->load->view('auth/template/auth_footer');
}
model_users
是使用此函数查询数据库的模型:
public function lettura_dati($clienteemail)
{
$this->db->where('email', $clienteemail);
$query = $this->db->get('user');
if ($query) {
$row = $query->row();
$cliente['nome'] = $row->nome;
return $cliente;
} else {
echo "errore nella ricerca del nome";
}
我尝试做的是使用会话数据中的用户电子邮件从db表中检索信息。
所以我开始只检索用户的名字。
该功能有效,但在视图中我使用echo $nome;
我有关于数组和字符串之间转换的错误...我知道这是正常的,但如果我这样做
print_r($nome);
我的输出是:Array[0] => 'Pippo'
我只想输出数组的内容。 我怎样才能做到这一点?
答案 0 :(得分:2)
看起来你已经犯了一些错字......
你的模特:
$row = $query->row(); // Fetch the entireuser
$cliente['nome'] = $row->nome; // Set the name to a value. $cliente isn't defined yet..
return $cliente; // Return the entire $cliente array.
你的控制器:
您正在使用上述模型方法并假设它只返回名称。它实际上正在返回完整的用户。
$cliente['nome'] = $this->model_users->lettura_dati($clienteemail);
将您的型号代码更改为以下内容,它应该按预期工作。
public function lettura_dati($clienteemail)
{
$this->db->where('email', $clienteemail);
$query = $this->db->get('user');
if ($query && $query->num_rows() > 0) { // Ensure we have got at least 1 row
$row = $query->row();
return $row->nome;
} else {
echo "errore nella ricerca del nome";
}
}
答案 1 :(得分:1)
return $row->nome;
而不是:
$cliente['nome'] = $row->nome;
return $cliente;
或强>
$cliente_data = $this->model_users->lettura_dati($clienteemail);
$cliente['nome'] = $cliente_data['nome'];
而不是:
$cliente['nome'] = $this->model_users->lettura_dati($clienteemail);