gpt4 book ai didi

php - 调用未定义的方法 UserModel::addUser()

转载 作者:可可西里 更新时间:2023-11-01 01:05:14 26 4
gpt4 key购买 nike

同一模型的其他函数工作正常,我只有其中两个有问题,它们都与数据库交互。在本地工作。

来自错误日志。 PHP fatal error :调用未定义的方法 UserModel::getScreens()

我已经通过谷歌进行了全面搜索,但看不出这些功能无法在服务器上运行的原因。登录还与数据库对话并且工作正常。

我已经为 $this->UserModel->method() $this->userModel->method() 等调用尝试了不同的命名约定。相同改变加载模型。 $this->load->model('UserModel', ' ', TRUE);

user.php( Controller )

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

session_start();

class User extends CI_Controller {

function __construct(){
parent::__construct();
$this->load->model('usermodel','',TRUE);
}

public function register(){
..........
$addUser = $this->usermodel->addUser($this->input->post());
..........
}

public function screens($id = FALSE){
$data = $this->checkStatus('screens');
//userInfo is coming from the checkStatus function.
//Have verified with a var_dump($user_id) and it appears
$user_id = $data['userInfo'][0]['id'];
$data['screens'] = $this->Usermodel->getScreens($user_id);
if($data){
$data['title'] = 'My SCREENs';
if($id){
$data['id'] = $id;
$this->load->template('screenview', $data);
} else {
$this->load->template('screens', $data);
}
}
}

public function login(){
//This works
..........
$result = $this->usermodel->login($email, $password);
..........
}
}

用户模型.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
Class UserModel extends CI_Model{

function __construct(){
parent::__construct();
$this->salt = "_________";

}

function getScreens($userID){
//This doesn't work
$this -> db -> select('*');
$this -> db -> from('screens');
$this -> db -> where('user_id = ' . "'" . $userID . "'");
$query = $this -> db -> get();

return $query->result_array();
}

function addUser($data){
//This doesn't work
$data = array(
'first_name' => $data['firstname'] ,
'last_name' => $data['lastname'] ,
'email' => $data['email'],
'dob' => $data['dob-day'] . '/' . $data['dob-month'] . '/' . $data['dob-year'],
'height' => $data['height'],
'weight' => $data['weight'],
'password' => sha1($data['password1'] . $this->salt),
'gender' => $data['gender']
);
$added = $this->db->insert('users', $data);
if($added){
return true;
} else {
return false;
}
}

function login($email, $password){
//This works
$this -> db -> select('id, email, password');
$this -> db -> from('users');
$this -> db -> where('email = ' . "'" . $email . "'");
$this -> db -> where('password = ' . "'" . sha1($password . $this->salt) . "'");
$this -> db -> limit(1);

$query = $this -> db -> get();

if($query -> num_rows() == 1){
return $query->result();
} else {
return false;
}
}
}

最佳答案

您不能在 usermodel 模型中使用多个大写字母。第一个字母必须大写,所有其他字母必须小写。

尝试:

Class Usermodel extends CI_Model{

在你的 Controller 中

$this->load->model('Usermodel', '', TRUE);
$this->Usermodel->getScreens()

将在一秒钟内发布文档

编辑:

http://codeigniter.com/user_guide/general/models.html

查看“模型剖析”下的规则。当我第一次开始使用 CI 时,我花了太多时间试图解决这个确切的问题 :)

编辑 2:

此外,我很久以前也遇到过这个问题,但是 $this->usermodel->whatever() 可以在我的本地机器上运行,但不能在服务器上运行。原因? Apache 在大写字母方面很痛苦。确保你所有的 U 在 $this->Usermodel

中都大写

关于php - 调用未定义的方法 UserModel::addUser(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12504321/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com