MVC就不解释,直接上代码分析数据流程:
数据库图:
模型部分介绍:
‘商品名称:‘,
‘goods_weight‘ => ‘商品重量‘,
‘goods_price‘ => ‘商品价格‘,
‘goods_category_id‘ => ‘商品分类‘,
‘goods_brand_id‘ => ‘品牌‘,
‘goods_introduce‘ => ‘简单介绍‘,
‘goods_number‘ => ‘数量‘,
);
}
}
?>
CActiveRecord这个类下非常多操作数据库方法:
控制器代码部分解析:这个控制器写在houtai模块中,却能够调用前台模块中模型,可见代码有非常高重用性。
findAllBySql($sql);//通过原生态sql进行查询,findALlBySql返回一个对象数组,
var_dump($goods_infos);
foreach($goods_infos as $v){
echo $v ->goods_name ."
";
}
exit();
$this->render(‘show‘,array("goods_infos"=>$goods_infos)); //这样的方式会渲染布局
//$this->renderPartial(‘add‘,array(‘goods_model‘ => $goods_model)); //这样的方式不会渲染布局
}
}
findAllBySql($sql)数据分析:
通过这个URL訪问的部分views代码:
序号 |
商品名称 |
库存 |
价格 |
图片 |
缩略图 |
品牌 |
创建时间 |
操作 |
> |
苹果(APPLE)iPhone 4Sgoods_name;?> |
goods_number;?> |
goods_price ;? > |
|
|
goods_brand_id;? > |
goods_create_time;? > |
r=houtai/goods/update">改动 |
删除 |
>
[1]
|
数据传递关系:
通过widget小物件完毕表单注冊解析:
刚才那个控制器里面增加以下方法:
function actionAdd(){
$goods_model = new Goods();
$this->renderPartial(‘add‘,array(‘goods_model‘ => $goods_model));
}
模型还是刚才那个模型;
views:
beginWidget("CActiveForm");?>
php echo $form->labelEx($goods_model,‘goods_name‘);?> |
php echo $form -> textField($goods_model,‘goods_name‘);?> |
php echo $form->labelEx($goods_model,‘goods_weight‘);?> |
php echo $form -> textField($goods_model,‘goods_weight‘);? > |
labelEx($goods_model,‘goods_price‘);?> |
php echo $form -> textField($goods_model,‘goods_price‘);?> |
labelEx($goods_model,‘goods_number‘);?> |
php echo $form -> textField($goods_model,‘goods_number‘);? > |
labelEx($goods_model,‘goods_category_id‘);?> |
textField($goods_model,‘goods_category_id‘);?> |
labelEx($goods_model,‘goods_brand_id‘);?> |
php echo $form -> textField($goods_model,‘goods_brand_id‘);?> |
labelEx($goods_model,‘goods_introduce‘);?> |
textArea($goods_model,‘goods_introduce‘,array(‘cols‘ => 20,"rows" => 5));? > |
php $this->endWidget();?
>
能够看下CActiveForm 类(\framework\web\widgets\CActiveForm.php)包括方法:
上面数据传递关系:
控制器和视图关系:
视图和模型关系:
视图和显示效果:
简单过程就这样啦!