Codeingniter3回显关联数组

时间:2016-02-04 10:29:38

标签: php arrays codeigniter

我们假设我有这个控制器功能

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'

我只想输出数组的内容。 我怎样才能做到这一点?

2 个答案:

答案 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);