Mysql Codeigniter Noob问题——活动记录和结果?
我正在写一个简单的应用程序。我需要阻止用户从一个页面,如果他们的信用<0 我有一个带有信用行的表用户配置文件 如果信用值为0,我如何与控制器一起设置模型,以将用户发送到另一个页面 这应该是直截了当的,但我是新的选择->哪里的东西 它也必须是当前用户的行,我还不知道如何遍历数组Mysql Codeigniter Noob问题——活动记录和结果?,mysql,database,codeigniter,Mysql,Database,Codeigniter,我正在写一个简单的应用程序。我需要阻止用户从一个页面,如果他们的信用哪里的东西 它也必须是当前用户的行,我还不知道如何遍历数组 谢谢 那么,最简单的解决方案就是加载一个不同的视图 至于模型,它看起来是这样的: class UserModel extends Model { public function getUserCredit($id) { $this->load->database(); //effectively generates:
谢谢 那么,最简单的解决方案就是加载一个不同的视图 至于模型,它看起来是这样的:
class UserModel extends Model {
public function getUserCredit($id) {
$this->load->database();
//effectively generates: SELECT `credit` FROM `User_profiles` WHERE `id`=$id
$query = this->db->select('credit')->where('id',$id)->get('User_profiles');
//row() executes the query for a single result, returns the credit property
return $query->row()->credit;
}
}
然后在控制器中:
class Users extends Controller {
//....
public function credit() {
$this->load->model('userModel','users');
// assuming the session library has been loaded
$user_id = $this->session->userdata('id');
$credit = $this->users->getUserCredit($user_id);
if ($credit == '0') $this->load->view('users/no_credit');
else $this->load->view('users/credit');
}
}
这是未经测试的,但它至少可以帮助你获得想法
当您请求页面/users/credit/1时,CI将调用users::credit1操作
然后将UserModel加载为$this->users
您调用$this->users->getUserCredit1,将其转换为UserModel::getUserCredit1,以存储为$credit
模型加载数据库
您告诉db选择'credit'选择credit列,其中'id',1其中id=1,然后获取'User\u profiles'从User\u profiles表中获取匹配行。它返回一个查询,为了可读性,您将其存储为$query
getUserCredit返回查询的单行结果的credit属性
如果$credit==0,则加载视图views/users/no_credit.php
否则,您将加载view/views/users/credit.php。通常,按照视图所表示的操作命名视图,并将其放在与控制器对应的文件夹中
嗯,最简单的解决方案就是加载一个不同的视图 至于模型,它看起来是这样的:
class UserModel extends Model {
public function getUserCredit($id) {
$this->load->database();
//effectively generates: SELECT `credit` FROM `User_profiles` WHERE `id`=$id
$query = this->db->select('credit')->where('id',$id)->get('User_profiles');
//row() executes the query for a single result, returns the credit property
return $query->row()->credit;
}
}
然后在控制器中:
class Users extends Controller {
//....
public function credit() {
$this->load->model('userModel','users');
// assuming the session library has been loaded
$user_id = $this->session->userdata('id');
$credit = $this->users->getUserCredit($user_id);
if ($credit == '0') $this->load->view('users/no_credit');
else $this->load->view('users/credit');
}
}
这是未经测试的,但它至少可以帮助你获得想法
当您请求页面/users/credit/1时,CI将调用users::credit1操作
然后将UserModel加载为$this->users
您调用$this->users->getUserCredit1,将其转换为UserModel::getUserCredit1,以存储为$credit
模型加载数据库
您告诉db选择'credit'选择credit列,其中'id',1其中id=1,然后获取'User\u profiles'从User\u profiles表中获取匹配行。它返回一个查询,为了可读性,您将其存储为$query
getUserCredit返回查询的单行结果的credit属性
如果$credit==0,则加载视图views/users/no_credit.php
否则,您将加载view/views/users/credit.php。通常,按照视图所表示的操作命名视图,并将其放在与控制器对应的文件夹中
+1.这正是控制器设计用来处理的东西。我觉得我更暖和了!你能解释一下cred$user\u id部分吗?这方面我是新手。这确实有帮助,但我仍然有困难对不起,如果这是一个痛苦,但我的理解是非常有限的。只是补充了一个解释。希望有帮助。我想我明白了!在我设置的模型中,$this->session->userdata'id'。。。这有意义吗?谢谢你的快速回答+1.这正是控制器设计用来处理的东西。我觉得我更暖和了!你能解释一下cred$user\u id部分吗?这方面我是新手。这确实有帮助,但我仍然有困难对不起,如果这是一个痛苦,但我的理解是非常有限的。只是补充了一个解释。希望有帮助。我想我明白了!在我设置的模型中,$this->session->userdata'id'。。。这有意义吗?谢谢你的快速回答!