## 建立数据模型类
通常在使用数据库之前,我们需要先建立好对应数据表的模型类。当然在sp框架里面可以简化这个步骤,直接通过自带的Model类来进行数据模型操作。
以下是两种方案:
**不建立模型类,直接用Model进行操作**
<?php
class DbController extends BaseController {
function actionIndex(){
// 直接使用demo_user表
$user = new Model('test_user');
$this->findall = $user->findAll();
$this->display("db/create.html");
}
}
这里通过直接new Model()的方式来实例化user这个数据模型类,参数'test_user'是数据表的名称(全名)。
该方案的好处是简单便捷,不需要建立php文件。通常适用于:
1. 项目中使用得相对比较少的数据表,模型类关键在于重用,但是用得少就没有太多必要重复使用了。
2. 模型业务相对简单的模型类,也就是没有太多复杂的逻辑,仅仅进行增删改查的操作,那么也可以简化。
**建立数据模型类**
在项目的protected/model目录下,创建User.php文件,文件内容:
<?php
class User extends Model{
public $table_name = "test_user";
public function Login($username, $userpass){
// 这里是登录逻辑,检查传入参数是否跟数据库匹配
return $this->find(array(
"username" => $username,
"password" => $userpass,
));
}
}
在控制器里面就可以:
<?php
class UserController extends BaseController {
function actionIndex(){
// 这里演示了一个登录逻辑
$user = new User();
$is_login = $user->Login(arg("username"), arg("password"));
if($is_login == true){
// 验证通过,设置session,调整到登录后界面
$_SESSION["user"] = arg("username");
$this->jump(url("admin/main", "index"));
}else{
// 验证不通过,跳转回登录界面
$this->tips("请输入正确用户名和密码", url("user", "loginform"));
}
}
}
这里跟直接调用Model()的方式效果稍有不一样,差别在于:
1. User.php这个类可以有更多可供重复使用的逻辑方法。
2. 可以封装更多的相关的业务代码,如Login()方法。
- 自述
- 一、入门教程
- 1. 开始使用SpeedPHP
- 2. Hello World
- 3. 理解MVC
- 4. 制作留言本
- 5. 数据操作及Ajax
- 二、框架概述
- 1. 特色
- 2. 版权及开源协议
- 3. 开发环境
- 4. 编码版本
- 5. SAE平台使用
- 三、开发指南
- 1. 开发流程
- 2. 架构及扩展
- 3. 程序目录结构
- 4. 命名建议
- 5. 安全建议
- 6. 用户自定义
- 7. 模块modules
- 四、访问交互
- 1. 表单提交及数据获取
- 2. session/cookie的使用
- 3. 伪静态及URL跳转
- 4. 使用frameset
- 5. 模板引擎特性和使用方法
- 五、数据操作
- 1. 建立数据模型类
- 2. 数据操作教程
- 3. 分页
- 4. SQL支持及关联实现
- 5. 多数据库、主从库配置