久久精品水蜜桃av综合天堂,久久精品丝袜高跟鞋,精品国产肉丝袜久久,国产一区二区三区色噜噜,黑人video粗暴亚裔

ThinkSNS-應(yīng)用開發(fā)范例-開始編程MODEL層

來自站長百科
跳轉(zhuǎn)至: 導航、? 搜索

導航: 上一頁

MODEL層

在Lib/Model/目錄下,新建三個文件GiftCategoryModel.class.php,GiftModel.class.php 和UserGiftModel.class.php,分別創(chuàng)建三個代碼如下:

class GiftCategoryModel extends Model{ },
class GiftModel extends AdvModel{ },
class UserGiftModel extends Model{ }

通過以上步驟,我們現(xiàn)在已將數(shù)據(jù)庫表和模型類建立了聯(lián)接關(guān)系。在項目的Action 類和Model 類中,已可以直接對數(shù)據(jù)庫進行相關(guān)操作。有些人習慣在Model 類里封裝一些方法,這樣更符合MVC 規(guī)范,也有一些人習慣把方法都寫在Action 里,方便程序的閱讀,這主要看個人習慣。本次開發(fā)將基本方法寫進入Model 層里。

  • 我們先看看GiftCategoryModel 里的代碼,已經(jīng)附上詳細注釋。
<?php
class GiftCategoryModel extends Model {
private $gift; //禮品表模型
/**
* _initialize
* 初始化函數(shù)
* @return void
*/
public function _initialize(){
//初始化只搜索狀態(tài)status 為1 的。
$this->status = 1;
parent:: _initialize();
}
public function setGift($gift){
$this->gift = $gift; //賦值禮品表模型
}
/**
* GiftToCategory
* 獲取已經(jīng)分組的禮物
* @return unknown_type
*/
public function GiftToCategory(){
//初始化禮物分組的變量,禮物數(shù)據(jù)的變量和最后結(jié)果的變量
$gift = $gift_category = array();
//獲取禮物分組和禮物數(shù)據(jù)
$gift_category = $this->findAll();
$gifts = $this->gift->findAll();
//根據(jù)分組重組數(shù)據(jù)
foreach ($gift_category as &$category){
foreach($gifts as $gift){
if($category['id'] == $gift['categoryId'])
$category['gifts'][] = $gift;
}
}
//返回結(jié)果
return $gift_category;
}
}
?>
  • 接著看看GiftModel 里的代碼,也已經(jīng)附上詳細注釋。
<?php
class GiftModel extends AdvModel{
/**
* _initialize
* 初始化函數(shù)
* @return void
*/
public function _initialize(){
parent:: _initialize();
}
/**
* assertNumAreEmpty
* 判斷是否禮品數(shù)是否足夠
* @return bool
*/
public function assertNumAreEmpty($id,$count = null){
$num = (int)$this->where('id='。$id)->getField('num');
if($num == 0 || $num < $count){
return true;
}
return false;
}
}
?>
  • 最后看看UserGiftModel 里的代碼,也已經(jīng)附上詳細注釋。
<?php
class UserGiftModel extends Model{
private $gift; //禮品表模型
private $category; //禮品類型表模型
private $api; //網(wǎng)站API
public function setApi($api){
$this->api = $api; //賦值網(wǎng)站API
}
public function setGift($gift){
$this->gift = $gift; //賦值禮品表模型
}
public function setCategory($category){
$this->category = $category; //賦值禮品類型表模型
}
/**
* receiveGift
* 獲得某個人收取的禮物
* @param $uid
* @return Gift;
*/
public function receiveList($uid){
$map['toUserId'] = $uid;
return $this->where($map)->order('id desc')->findPage(15);
}
/**
* sendGift
* 獲得某個人發(fā)送的禮物列表
* @param $uid
* @return unknown_type
*/
public function sendList($uid){
$map['fromUserId'] = $uid;
return $this->where($map)->order('id desc')->findPage(15);
}
/**
* sendGift
* 發(fā)送禮物
*
* @param array $toUid 接收禮品人的ID(可以多個,以,分隔)
* @param $fromUid 送禮者ID
* @param $sendInfo 附加信息和發(fā)送方式
* @param $giftInfo 禮品信息
*/
public function sendGift($toUid,$fromUid,$fromName,$sendInfo,$giftInfo){
//判斷參數(shù)是否合法。不合法返回false
if(!is_numeric($fromUid)){
return '非法操作!';
}
$toUser = explode(',',$toUid);
$userNum = count($toUser);
//判斷是否是自己給自己送禮物
if(in_array($fromUid,$toUser)){
return '不能給自己送禮物!';
}
//判斷是否有足夠的禮物數(shù)
if($this->gift->assertNumAreEmpty($giftInfo['id'],$userNum)){
return '禮物庫存不足,發(fā)送禮品失??!';
}
$map['giftPrice'] = $giftPrice;
$map['giftImg'] = t($giftInfo['img']);
$map['sendInfo'] = t($sendInfo['sendInfo']);
$map['sendWay'] = intval($sendInfo['sendWay']);
$map['fromUserId'] = intval($fromUid);
$map['fromUserName'] = t($fromName);
$map['cTime'] = time();
$res = $this->__insertData($toUser,$map);
//如果入庫過程成功。則做相應(yīng)的處理
if($res){
//禮物數(shù)減1
$this->gift->setDec('num','id='。$giftInfo['id'],$userNum);
return 1;
}else{
return '發(fā)送禮品失??!';
}
}
/**
* __insertData
* 把數(shù)據(jù)插入數(shù)據(jù)庫
* @param $toUser 發(fā)送對象ID $map 數(shù)據(jù)組
* @return $add 插入結(jié)果集;
*/
private function __insertData($toUser,$map){
foreach ($toUser as $_touid){
//組成數(shù)據(jù)集
$map['toUserId'] = intval($_touid);
//將信息入庫
$res = $this->add($map);
}
return $res;
}
}
?>


參考資料[ ]