我正在尝试获取注册用户的名字和姓氏。 这是模型中的getfirstname,getlastname函数
public function getf()
{
$email = $this->input->post('email');
$this->db->where('email', $this->input->post('email'));
$query = $this->db->get('users');
if($query->num_rows == 1)
{
$row = $query->row();
echo $row->fname;
}
}
public function getl()
{
$this->db->where('email', $this->input->post('email'));
$query = $this->db->get('users');
if($query->num_rows == 1)
{
$row = $query->row();
echo $row->lname;
}
}
在我的控制器中:
public function members()
{
if($this->session->userdata('is_logged_in'))
{
$data['fname'] = $this->getf();
$data['lname'] = $this->getl();
$this->load->view('members', $data);
}
else
{
redirect('main/restricted');
}
}
我在视图中回显fname和lname变量,它们打印'Array'而不是实际的firstname和lastname
echo $fname;
echo $lname;
答案 0 :(得分:4)
你对模特的打电话是完全错误的,你不是 遵循标准程序。试试吧。 分开逻辑
控制器
public function members()
{
if($this->session->userdata('is_logged_in'))
{
$email = $this->input->post('email');
$result = $this->mymodel->getnames($email);
if($result){
$data['fname'] = $result->first_name;
$data['lname'] = $result->last_name;
$this->load->view('members', $data);
}
}
else
{
redirect('main/restricted');
}
}
为模型创建单个函数而不是两个函数 对于可以使用单个函数检索的两个值 也返回对象而不是回显
public function getnames($email)
{
$this->db->where('email',$email);
$query = $this->db->get('users');
if($query->num_rows == 1)
{
return $query->row();
}
return false;
}
答案 1 :(得分:0)
从我所看到的,你实际上还没有宣布过' fname'和' lname'变量,除非我错过了它,但如果它不断返回'数组'那是因为你需要用
序列化数组$variable = json_encode($arrayName);
这会将数组转换为字符串,希望这会有所帮助。
答案 2 :(得分:0)
的usermodel
class UserModel extends CI_Model
{
public function getItemByEmail($email)
{
// check email
$this->load->helper('email');
if( ! $email OR ! valid_email($email))
return array();
$this->db->where('email', $email);
$this->db->limit(1);
$item = $this->db->get('users')->row();
return $item;
}
}
控制器:
public function members()
{
if( ! $this->session->userdata('is_logged_in'))
redirect('main/restricted');
$this->load->model('UserModel');
$this->load->view('members', array(
'userRow' => $this->UserModel->getItemByEmail($this->input->post('email', TRUE))
));
}
查看:
<?= (isset($userRow->fname) ? $userRow->fname : ''); ?>