
模型:
有多少数据表,就建立多少模型
模型其实就是类
我们对数据库进行操作,需要实例化模型类,产生对象
通过对象调用相关的方法,就可以实现数据库的操作
增加记录
[php]
$post =newPost();
$post->title ="jack";
$post->content ="1111111";
$post->createtime = time();
$post->save();
通过观察mdm项目发现在model中大多数的insert操作使用的是DAO方式,原生的insert sql语句;
在model中可以这样:
public function insert($id,$name)
{
$con = $this->dbConnection;
$sql="insert into user (username,createtime) values (:username,:createtime);";
$time = date("Y-m-d H:i:s");
$cmd = $con->createCommand($sql);
$cmd->bindParam(":username",$name,PDO::PARAM_STR);
$cmd->bindParam(":createtime",$time,PDO::PARAM_STR);
$cmd->execute();
}
或者在controller中使用AR的较多(更多的操作方式是如下在控制器中执行,使用AR类的save()方法):
前提是,要在Model中,定义好rule,rule怎么定义,暂时还没弄明白
官方给的是如下原因:
我们可以使用attributes属性统一收集表单信息,但是数据表约束规则必须完整。
并且需要设置验证规则rules为safe,否则信息无法被attributes保存
public function actionInsert()
{
$arr = array();
$array["name"]= $_GET["name"];
$array["time"]= $_GET["time"];
$user =newManagementUser("save");
$user->attributes = $arr;
$saved = $user->save();
if($saved){
echo 'success';
}else{
echo 'fail';
}
}
更新记录
一般也是在controller中更新,
public function actionUpdate()
{
$id = $_GET["id"];
$policy =newDevicePolicy("update");
$parray = array();
$parray["name"]='default';
$parray["time"]= time();
$update = $policy->updateAll($parray,"id=:pid",array(":pid"=>$id));
}
findByPk()使用
不实例化对象,操作数据库的方式如下:ManagementEndGroup::model()->find();
public function actionModify()
{
$manageData = json_decode(file_get_contents("php://input"));
$datarry = array();
$datarry["id"] = $manageData->groupid;
$datarry["name"] = $manageData->groupname;
$datarry["desc"] = $manageData->groupdesc;
if(isset($manageData->upgroup))
$datarry["upgroup_id"] = $manageData->upgroup;
$manage = ManagementEndGroup::model()->findByPk($manageData->groupid);
$manage->attributes = $datarry;
$saved = $manage->save();
$rslt = new stdClass();
$rslt->code = $saved?0:-1;
print_r(json_encode($rslt));
}
Goods.php(模型)
/**
* 查询商品列表(数组方式)
*/
public function GoodsList()
{
$sql = "select * from sw_goods where 1=1";
$result = $this->findAllBySql($sql); $resultarray = array();
foreach ($result as $item)
{
$itemarray = array();
$itemarray["goods_id"] = $item["goods_id"];
$itemarray["goods_name"] = $item["goods_name"];
$itemarray["goods_weight"] = $item["goods_weight"];
$itemarray["goods_price"] = $item["goods_price"];
$itemarray["goods_number"] = $item["goods_number"];
$itemarray["goods_category_id"] = $item["goods_category_id"];
$itemarray["goods_brand_id"] = $item["goods_introduce"];
$itemarray["goods_big_img"] = $item["goods_big_img"];
$itemarray["goods_small_img"] = $item["goods_small_img"];
$itemarray["goods_create_time"] = $item["goods_create_time"];
$resultarray[]=$itemarray;
}
return $resultarray;
// print_r($resultarray);
}
GoodsController.php(控制器)
//商品列表页
publicfunction actionCategory()
{
//render()带布局渲染
//renderPartial()部分渲染
$goods =newGoods();
$goodslist = $goods->GoodsList();
print_r($goodslist);
$this->render('category');
}