## 建立數據模型類
通常在使用數據庫之前,我們需要先建立好對應數據表的模型類。當然在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. 多數據庫、主從庫配置