YII模型的增删改查
YII模型的增删改查
别人说我名字很长 发表于4年前
YII模型的增删改查
  • 发表于 4年前
  • 阅读 108
  • 收藏 2
  • 点赞 0
  • 评论 0
摘要: YII模型的增删改查


新建模型 ,模型名为表名
1、建模型 /cms/protected/models/test.php //test是我的表名

<?php
/*
 * test表模型管理,一张表对应一个模型,表中的字段为模型对象的属性
 */
class test extends CActiveRecord{
    //Model静态方法为必须有的方法
    public static function model($className=__CLASS__){
          return parent::model($className);
    }
    //tableName方法也是必须有的方法
    public function tableName(){
        return '{{test}}';
    }
    //attributeLabels方法在显示 echo $form->labelEx($model,'pingpai'); 时需要
    public function attributeLabels(){
        return array(
            'title' =>'商品名称',
            'type'=>'商品类型',
            'pingpai'=>'品牌',
            'jiage'=>'价格',
            'picname'=>'产品图片',
            'content'=>'详细描述'
        );        
    } 
    //验证
    function rules() {
        return array(
            array('title','required','message'=>'标题必填'),
            array('typeid','required','message'=>'必须选择栏目'),            
        );
    }   
}
?>



2、增加  (首先建立class  Manager Controller extends Controller控制器的add方法)
public function actionAdd(){
        //首页实例化这个模型
        $model = new test();
        //如果表单提交了,就进行更新
        if($_POST['test']){
            foreach($_POST['test'] as $k=>$v){
                $model->$k = $v;//将post过来的数据赋值给模型字段
            }
            $model->attributes=$_POST['test'];//使用这个也可以
            //保存信息
            if($model->save()){
                //增加成功后跳转
                $this -> redirect(array('show'));
            }            
        }
        //显示增加的表单,将$model传进去
        $this->renderPartial('add',array('model'=>$model));
    }



2—1、增加的视图 /cms/protected/modules/houtai/manager/add.php
<?php $form = $this->beginWidget('CActiveForm');?><!-- 表单form开始 -->
<table border="1" width="100%" class="table_a">
    <tr>
        <td><?php echo $form->labelEx($model,'title'); ?><!-- 字段的显示名称 --></td>
        <td>
            <?php echo $form->textfield($model,'title');?><!-- 字段的input框 -->
        </td>
    </tr>
    <tr>
        <td><?php echo $form->labelEx($model,'content');?><!-- 字段的显示名称 --></td>
        <td>
            <?php echo $form->textArea($model,'content');?><!-- 字段的area框 -->
        </td>
    </tr>
           
    <tr>
        <td colspan="2" align="center">
            <input type="submit" value="添加">
        </td>
    </tr>  
</table>
<?php $this->endwidget();?><!-- 表单form结束 -->


3、修改   (首先建立class  Manager Controller extends Controller控制器的update方法)
public function actionUpdate($id){//id为接收修改的ID
        $model = Test::Model();//实例化模型,修改的模型必须这样实例化
        $test_info= $model->findByPk($id);//查询出要修改的这一列
        //如果提交了表单
        if($_POST['test']){
            foreach($_POST['test'] as $k=>$v){
                $test_info->$k = $v;//将post过来的数据赋值给模型字段
            }
            if($test_info->save()){//保存信息
                $this->redirect(array('show'));//跳转
            }            
        }
        //将模型对象传入到update视图中
        $this->renderPartial('update',array("test_info"=>$test_info));        
    }



3_1 修改的视图  增加的视图 /cms/protected/modules/houtai/manager/update.php
<?php $form = $this->beginWidget('CActiveForm');?><!-- 表单form开始 -->
<table border="1" width="100%" class="table_a">
    <tr>
        <td><?php echo $form->labelEx($model,'title'); ?><!-- 字段的显示名称 --></td>
        <td>
            <?php echo $form->textfield($model,'title');?><!-- 字段的input框 -->
        </td>
    </tr>
    <tr>
        <td><?php echo $form->labelEx($model,'content');?><!-- 字段的显示名称 --></td>
        <td>
            <?php echo $form->textArea($model,'content');?><!-- 字段的area框 -->
        </td>
    </tr>
          
    <tr>
        <td colspan="2" align="center">
            <input type="submit" value="修改">
        </td>
    </tr>  
</table>
<?php $this->endwidget();?><!-- 表单form结束 -->



4、删除  (首先建立class  Manager Controller extends Controller控制器的delete方法)
public function actionDelete($id){
        //根据get过来的id获得模型对象,通过对象的delete方法删除数据
        $model = Test::Model();//获得模型对象
        $test_info = $model->findByPk($id);//通过对象的findByPk方法获得这一行数据
        if($test_info->delete()){//用delete方法删除
            $this->redirect(array('show'));
        }
    }



5、分页显示    (首先建立class  Manager Controller extends Controller控制器的show方法)
public function actionshow(){
        $model = Test::Model();//查、改、删都用这个实例化模型方式,增加必须用new Test();
        $con = $model->count();//获得总记录数
        $per = 5;//每页显示5条记录
        $page = new pagination($con,$per);//这里的分页类pagination是调用的/cms/protected/components/pagination.php
        $sql = "select * from {{test}} $page->limit";//拼接SQL语句
        $test_info = $model->findAllBySql($sql);//通过SQL语句获得数据
        $this->renderPartial('show',array('test_info'=>$test_info,'fpage'=>$page->fpage()));//传递变量到视图
    }



5-2 分页的视图  /cms/protected/modules/houtai/views/manager/show.php
<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
                    foreach($test_info as $k=>$v){
                    ?>
                    <tr id="product1">
                        <td><?php echo $v->id;?></td>
                        <td><a href="#"><?php echo $v->title;?></a></td>
                        <td>100</td>
                        <td><?php echo $v->jiage;?></td>
                        <td><img src="<?php echo HOUTAI_IMG_URL;?>20121018-174034-58977.jpg" height="60" width="60"></td>
                        <td><img src="<?php echo HOUTAI_IMG_URL;?>20121018-174034-97960.jpg" height="40" width="40"></td>
                        <td>苹果apple</td>
                        <td>2012-10-18 17:40:34</td>
                        <td><a href="index.php?r=houtai/manager/update&id=<?php echo $v->id;?>">修改</a></td>
                        <td><a href="index.php?r=houtai/manager/delete&id=<?php echo $v->id;?>" onclick="return confirm('确定将此记录删除?')">删除</a></td>
                    </tr>
                    <?php }?>
                        
                    <tr>
                        <td colspan="20" style="text-align: center;">
                            <?php echo $fpage;?>
                        </td>
                    </tr>
                </tbody>
            </table>






共有 人打赏支持
粉丝 53
博文 227
码字总数 83765
×
别人说我名字很长
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: