YII进行数据增删改查分析
2014-10-18 22:08
176 查看
关于模型部分参考http://blog.csdn.net/buyingfei8888/article/details/40208729
控制器部分:
通过这个url(http://localhost/shop/index.php?r=houtai/goods/show)show视图:
部分源码:
add模板部分源码:
关于为什么Goods::model()和new Goods() 执行save方法会分别调用update 和insert方法可以看CActiveRecord 源码。
控制器部分:
<?php class GoodsController extends Controller{ function actionShow(){ $goods_model = Goods::model(); //简单查询可以通过模型里面静态方法来创建 $sql = "select goods_id,goods_name,goods_price,goods_create_time from {{goods}} limit 10"; $goods_infos = $goods_model ->findAllBySql($sql);//通过原生态sql进行查询,findALlBySql返回一个对象数组, // var_dump($goods_infos); // foreach($goods_infos as $v){ // echo $v ->goods_name ."<br />"; // } // exit(); $this->render('show',array("goods_infos"=>$goods_infos)); //这种方式会渲染布局 //$this->renderPartial('add',array('goods_model' => $goods_model)); //这种方式不会渲染布局 } function actionAdd(){ $goods_model = new Goods(); if(isset($_POST['Goods'])){ // $goods_model->goods_name = 'apple phone'; // $goods_model->goods_price = '5199'; // $goods_model->goods_weight=102; //对上面代码优化 foreach($_POST['Goods'] as $_k => $_v){ $goods_model -> $_k = $_v; } } if($goods_model->save()){ $this ->redirect('./index.php?r=houtai/goods/show'); }else{ echo "error"; } // $this->renderPartial('add',array('goods_model' => $goods_model)); } /* * YII 对get优化,作为参数传递进来 * 模板和添加时模板基本一样,直接复制稍微修改就行,都是通过小物件 ,自动会把数据关联起来,节省开发成本 */ function actionUpdate($id){ //除了添加数据进行 new Goods(), 别的都是调用静态方法 调用save方法执行是insert // Goods::model()调用save方法执行是update $goods_model = Goods::model(); $goods_info = $goods_model ->findByPk($id); //$goods_info 是 数据模型对象 if(isset($_POST['Goods'])){ foreach($_POST['Goods'] as $_k => $_v){ $goods_info -> $_k = $_v; } if($goods_info -> save()){ $this ->redirect('./index.php?r=houtai/goods/show'); } } $this->renderPartial('update',array('goods_model' => $goods_info )); } function actionDel($id){ //根据$id获得被删除数据对象,通过该对象调用delete方法就ok $goods_mode = Goods::model(); $goods_info = $goods_mode ->findByPk($id); //获得被删除商品模型对象 if($goods_info ->delete() ){ $this ->redirect('./index.php?r=houtai/goods/show'); }else{ echo 'error'; } } function actionJia(){ $goods_model = new Goods(); // $goods_model=Goods::model(); $goods_model->goods_name = 'apple phone'; $goods_model->goods_price = '5199'; $goods_model->goods_weight=102; var_dump($goods_model->save()); // var_dump($goods_model); if($goods_model->save()){ echo 'success'; }else{ echo "error"; } } } ?>
通过这个url(http://localhost/shop/index.php?r=houtai/goods/show)show视图:
部分源码:
<table class="table_a" border="1" width="100%"> <tbody><tr style="font-weight: bold;"> <td>序号</td> <td>商品名称</td> <td>库存</td> <td>价格</td> <td>图片</td> <td>缩略图</td> <td>品牌</td> <td>创建时间</td> <td align="center">操作</td> </tr> <?php $i=1; foreach($goods_infos as $_v){ ?> <tr id="product1"> <td><?php echo $i++;?></td> <td><a href="#">苹果(APPLE)iPhone 4S<?php echo $_v->goods_name;?></a></td> <td><?php echo $_v->goods_number;?></td> <td><?php echo $_v->goods_price ;?></td> <td><img src="<?PHP ECHO HOUTAI_IMG_URL ;?><?php echo $_v->goods_big_img;?>" height="60" width="60"></td> <td><img src="<?PHP ECHO HOUTAI_IMG_URL ;?><?php echo $_v->goods_small_img;?>" height="40" width="40"></td> <td><?php echo $_v->goods_brand_id;?></td> <td><?php echo $_v->goods_create_time;?></td> <td><a href="./index.php?r=houtai/goods/update&id=<?php echo $_v->goods_id;?>">修改</a></td> <!-- <td><a href="./index.php?r=houtai/goods/update&id=<?php// echo $_v->goods_id;?>&name=test">修改</a></td>--> <td><a href="./index.php?r=houtai/goods/del&id=<?php echo $_v->goods_id;?> "> 删除</a></td> </tr> <?php } ?> <tr> <td colspan="20" style="text-align: center;"> [1] </td> </tr> </tbody> </table>
add模板部分源码:
<?php $form = $this -> beginWidget("CActiveForm");?> <!-- 调用了 CActiveForm 类 怎样查找CActiveForm类,在\framework\yiilite.php 里查找,这个文件10000多行,可见yii核心代码就是这么多行 通过这个在找到 CActiveForm所在文件 CActiveForm.php包含了很多方法。就是对表单元素操作 --> <table border="1" width="100%" class="table_a"> <tr> <!-- <td>商品名称</td>--> <!-- <td><input type="text" name="f_goods_name" /></td>--> <td><?php echo $form->labelEx($goods_model,'goods_name');?></td> <td><?php echo $form -> textField($goods_model,'goods_name');?></td> </tr> <tr> <td><?php echo $form->labelEx($goods_model,'goods_weight');?></td> <td> <?php echo $form -> textField($goods_model,'goods_weight');?></td> </tr> <tr> <td><?php echo $form->labelEx($goods_model,'goods_price');?></td> <td> <?php echo $form -> textField($goods_model,'goods_price');?></td> </tr> <tr> <td><?php echo $form->labelEx($goods_model,'goods_number');?></td> <td> <?php echo $form -> textField($goods_model,'goods_number');?></td> </tr> <tr> <td><?php echo $form->labelEx($goods_model,'goods_category_id');?></td> <td> <?php echo $form -> textField($goods_model,'goods_category_id');?></td> </tr> <tr> <td><?php echo $form->labelEx($goods_model,'goods_brand_id');?></td> <td><?php echo $form -> textField($goods_model,'goods_brand_id');?></td> </tr> <tr> <td><?php echo $form->labelEx($goods_model,'goods_introduce');?></td> <td><?php echo $form -> textArea($goods_model,'goods_introduce',array('cols' => 20,"rows" => 5));?></td> </tr> </table> <td colspan="2" align="center"> <input type="submit" value="添加"> </td> <?php $this->endWidget();?>修改和上面基本相同:
<?php $form = $this -> beginWidget("CActiveForm");?> <!-- 调用了 CActiveForm 类 怎样查找CActiveForm类,在\framework\yiilite.php 里查找,这个文件10000多行,可见yii核心代码就是这么多行 通过这个在找到 CActiveForm所在文件 CActiveForm.php包含了很多方法。就是对表单元素操作 --> <table border="1" width="100%" class="table_a"> <tr> <!-- <td>商品名称</td>--> <!-- <td><input type="text" name="f_goods_name" /></td>--> <td><?php echo $form->labelEx($goods_model,'goods_name');?></td> <td><?php echo $form -> textField($goods_model,'goods_name');?></td> </tr> <tr> <td><?php echo $form->labelEx($goods_model,'goods_weight');?></td> <td> <?php echo $form -> textField($goods_model,'goods_weight');?></td> </tr> <tr> <td><?php echo $form->labelEx($goods_model,'goods_price');?></td> <td> <?php echo $form -> textField($goods_model,'goods_price');?></td> </tr> <tr> <td><?php echo $form->labelEx($goods_model,'goods_number');?></td> <td> <?php echo $form -> textField($goods_model,'goods_number');?></td> </tr> <tr> <td><?php echo $form->labelEx($goods_model,'goods_category_id');?></td> <td> <?php echo $form -> textField($goods_model,'goods_category_id');?></td> </tr> <tr> <td><?php echo $form->labelEx($goods_model,'goods_brand_id');?></td> <td><?php echo $form -> textField($goods_model,'goods_brand_id');?></td> </tr> <tr> <td><?php echo $form->labelEx($goods_model,'goods_introduce');?></td> <td><?php echo $form -> textArea($goods_model,'goods_introduce',array('cols' => 20,"rows" => 5));?></td> </tr> </table> <td colspan="2" align="center"> <input type="submit" value="修改"> </td> <?php $this->endWidget();?>
关于为什么Goods::model()和new Goods() 执行save方法会分别调用update 和insert方法可以看CActiveRecord 源码。
相关文章推荐
- YII进行数据增删改查分析
- 在ASP.NET下用Microsoft Excel进行数据分析与报表
- 在ASP.NET下用Microsoft Excel进行数据分析与报表
- Java操作Hbase进行建表、删表以及对数据进行增删改查,条件查询
- Java操作Hbase进行建表、删表以及对数据进行增删改查,条件查询
- 对haproxy代理流程的数据进行抓包分析
- 对haproxy代理流程的数据进行抓包分析
- 在ASP.NET下用Microsoft Excel进行数据分析与报表
- 小白学数据分析-----> 利用SPSS对DAU/MAU进行比率分析
- Java操作Hbase进行建表、删表以及对数据进行增删改查,条件查询
- ASP.NET编程技术-在ASP.NET下用Microsoft Excel进行数据分析与报表
- [转] 在ASP.NET下用Microsoft Excel进行数据分析与报表(ASP.Net)[http://blog.csdn.net/hoker_long/archive/2004/09/21/112470.aspx]
- perl如何对oracle数据进行增删改查?
- 在Windows Mobile和Wince(Windows Embedded CE)下使用.NET Compact Framework进行GPS NMEA data数据分析的开发
- 将大量有规律txt文本数据转换成xml格式,在导入excel,生成excel文件,在导入spass中,对数据进行分析
- (原创2008.07.21)对iris数据进行聚类分析的程序(模式识别)
- 绘制柱形图(对排序数据进行分析)
- 如何进行网站运营数据分析?
- PBOC/EMV-交易流程详解--POS与卡片的数据交互进行分析
- ArrayList 与HashSet的比较,及应用反射读取properties配置文件中的数据进行实例化再调用,以及类加载器的使用;还有HashCode的分析,及导致内存泄露,内存溢出的原因之一