我想在登录后显示数据库中的当前用户信息。 这是我的代码。
控制器1(欢迎)
using (var dbContext = MyDbContext())
{
dbContext.Configuration.ProxyCreationEnabled = false;
return dbContext.MyProducts.AsNoTracking().Where(product => product.DepartmentId = departmentId);
}
控制器2(成员)
public function getValues() {
$this->load->model('display_model');
$result=$this->display_model->authenticateUser();
if($result){
$this->session->set_userdata('id', $result['id']);
redirect('/member/home/');
}
else
redirect('/welcome/');
模型
public function __construct()
{
// Call the CI_Model constructor
parent::__construct();
if($this->session->userdata('id')==NULL)
{
redirect('/welcome/');
}
}
public function home() {
$this->load->view('member_home');
}
查看1(login_view)
public function authenticateUser(){
$name =$_POST['name'];
$password=$_POST['password'];
$where=array('name'=>$name,
'password'=>$password);
return $this->db->select('name, password, id')
->from('member')
->where($where)
->get()->row_array();
查看2:登录后视图(member_home)
<h1>Member Login Form</h1>
<?php echo validation_errors(); ?>
<?php echo form_open('Welcome/getValues'); ?>
Username: <br/>
<input type="text" name="name" /> <br>
Password: <br>
<input type="password" name="password" /> <br>
<input type="submit" value="Login" name="submit"/>
</form>
现在出现错误 消息:未定义的变量:结果
如何解决它需要帮助..在此先感谢
答案 0 :(得分:0)
您没有将$ result值传递给您的主视图更新代码,如下所示:
控制器1:
public function getValues() {
$this->load->model('display_model');
$result=$this->display_model->authenticateUser();
if($result){
$this->session->set_userdata('id', $result['id']);
redirect(member/home/$result['id']);
}
else
redirect('/welcome/');
控制器2:
public function __construct()
{
// Call the CI_Model constructor
parent::__construct();
if($this->session->userdata('id')==NULL)
{
redirect('/welcome/');
}
}
public function home($id = '') {
$data['id'] = $id;
$this->load->view('member_home',$data);
}
注意:强>
在视图中使用foreach时,必须将查询结果从row_array()更改为result_array()