Yii2.0--控制层读写操作

                        Yii2.0--控制层读写操作增删改查

 

1.查询

<span style="font-size:18px;"><span style="font-size:18px;">查询返回多行:    
$command = Yii::$app->db->createCommand('SELECT * FROM post');  
$posts = $command->queryAll();
 
返回单行
$command = Yii::$app->db->createCommand('SELECT * FROM post WHERE id=1');  
$post = $command->queryOne();
  
查询多行单值:  
$command = Yii::$app->db->createCommand('SELECT title FROM post');  
$titles = $command->queryColumn();
  
查询标量值/计算值:  
$command = Yii::$app->db->createCommand('SELECT COUNT(*) FROM post');  
$postCount = $command->queryScalar();</span></span>

2.分页

 

Controller:
 /** 
    *@action    yii多表链接查询后分页 
    *@----------------------------------------------------------- 
    *@ book 表和 bookpress 联查后分页 
    */  
use yii\db\Query;//调用Query方法
  public function actionShow(){
          $query = new Query();
         $list = $query->from("cart")->all();
         // var_dump($list);die;
         $pages = new Pagination([  
         'totalCount' =>count($list),
         'pageSize' =>3,//pageSize 每页显示的条数  
        ]);   
         $data = $query->offset($pages->offset)->limit($pages->limit)->all(); 
         return $this->render('show',['data'=>$data,'pages' => $pages,]);  
    }]);  
 } 

 

 

<p><span style="font-size:24px;">controller:</span></p><pre><code class="hljs php"><span style="font-size:18px;"><span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">actionIndex</span><span class="hljs-params">()</span>
</span>{
    $query = Article::find()->where([<span class="hljs-string">'status'</span> => <span class="hljs-number">1</span>]);
    $countQuery = <span class="hljs-keyword">clone</span> $query;
    $pages = <span class="hljs-keyword">new</span> Pagination([<span class="hljs-string">'totalCount'</span> => $countQuery->count()]);
    $models = $query->offset($pages->offset)
        ->limit($pages->limit)
        ->all();

    <span class="hljs-keyword">return</span> <span class="hljs-keyword">$this</span>->render(<span class="hljs-string">'index'</span>, [
        <span class="hljs-string">'models'</span> => $models,
        <span class="hljs-string">'pages'</span> => $pages,
    ]);
}

<span style="font-size:18px;"></span></span></code><pre name="code" class="php">Model:

 /** 
    * @inheritdoc 多表联查数据 
    */  
    function pages()  
    {  
        //注意: 查询的时候不能加 all 或者 asArray 查出来是对象就可以了  
         return $this->find()  
            ->select('*')  
            ->innerJoin("`book_press` as bp on `bp`.`book_id` = `book`.`title_id`");  
            /* 此处去掉 
            ->asArray()  
            ->all(); 
            */  
    }  

 


VIEWS:

<?php  
    use yii\helpers\Html;  
    use yii\widgets\LinkPager;  
    ?>  
    <table border=1>  
        <?php foreach ($models as $model): ?>  
            <tr>  
                <td><?= $model['title']; ?></td>  
                <td><?= $model['author']; ?></td>  
            </tr>   
        <?php endforeach; ?>  
    </table>  
      

   echo LinkPager::widget([
         'pagination' => $pages,
    ]);

//或

    <?= LinkPager::widget(['pagination' => $pages,  
        'firstPageLabel' => '首页',  
        'lastPageLabel' => '最后一页',  
        'prevPageLabel' => '上一页',  
        'nextPageLabel' => '下一页',  
        'maxButtonCount'=>5, //控制每页显示的页数  
    ]); 
   ?>

 

 

添加

 

//使用createCommand()进行新增数据
Yii::$app->db->createCommand()->insert('user', [  
    'name' => 'test',  
    'age' => 30,  
])->execute();

//批量插入数据
Yii::$app->db->createCommand()->batchInsert('user', ['name', 'age'], [  
    ['test01', 30],  
    ['test02', 20],  
    ['test03', 25],  
])->execute();

 

修改

 

<span style="font-size:18px;">使用createCommand()修改

Yii::$app->db->createCommand()->update('user', ['age' => 40], 'name = test')->execute();</span>

删除

 

<span style="font-size:18px;">使用createCommand()删除

Yii::$app->db->createCommand()->delete('user', 'age = 30')->execute();</span>

 

Yii2.0高级版本开发指南网址:

http://www.yii-china.com/doc/detail/1.html?postid=280

 

控制器跳页面操作

      $this->redirect(['text/show']); // 跳转控制器

    return $this->render('upda',["data"=>$data]); //跳转视图页面并传值
 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目标检测(Object Detection)是计算机视觉领域的一个核心问题,其主要任务是找出图像中所有感兴趣的目标(物体),并确定它们的类别和位置。以下是对目标检测的详细阐述: 一、基本概念 目标检测的任务是解决“在哪里?是什么?”的问题,即定位出图像中目标的位置并识别出目标的类别。由于各类物体具有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具挑战性的任务之一。 二、核心问题 目标检测涉及以下几个核心问题: 分类问题:判断图像中的目标属于哪个类别。 定位问题:确定目标在图像中的具体位置。 大小问题:目标可能具有不同的大小。 形状问题:目标可能具有不同的形状。 三、算法分类 基于深度学习的目标检测算法主要分为两大类: Two-stage算法:先进行区域生成(Region Proposal),生成有可能包含待检物体的预选框(Region Proposal),再通过卷积神经网络进行样本分类。常见的Two-stage算法包括R-CNN、Fast R-CNN、Faster R-CNN等。 One-stage算法:不用生成区域提议,直接在网络中提取特征来预测物体分类和位置。常见的One-stage算法包括YOLO系列(YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOv5等)、SSD和RetinaNet等。 四、算法原理 以YOLO系列为例,YOLO将目标检测视为回归问题,将输入图像一次性划分为多个区域,直接在输出预测边界框和类别概率。YOLO采用卷积网络来提取特征,使用全连接来得到预测值。其网络结构通常包含多个卷积和全连接,通过卷积提取图像特征,通过全连接输出预测结果。 五、应用领域 目标检测技术已经广泛应用于各个领域,为人们的生活带来了极大的便利。以下是一些主要的应用领域: 安全监控:在商场、银行
目标检测(Object Detection)是计算机视觉领域的一个核心问题,其主要任务是找出图像中所有感兴趣的目标(物体),并确定它们的类别和位置。以下是对目标检测的详细阐述: 一、基本概念 目标检测的任务是解决“在哪里?是什么?”的问题,即定位出图像中目标的位置并识别出目标的类别。由于各类物体具有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具挑战性的任务之一。 二、核心问题 目标检测涉及以下几个核心问题: 分类问题:判断图像中的目标属于哪个类别。 定位问题:确定目标在图像中的具体位置。 大小问题:目标可能具有不同的大小。 形状问题:目标可能具有不同的形状。 三、算法分类 基于深度学习的目标检测算法主要分为两大类: Two-stage算法:先进行区域生成(Region Proposal),生成有可能包含待检物体的预选框(Region Proposal),再通过卷积神经网络进行样本分类。常见的Two-stage算法包括R-CNN、Fast R-CNN、Faster R-CNN等。 One-stage算法:不用生成区域提议,直接在网络中提取特征来预测物体分类和位置。常见的One-stage算法包括YOLO系列(YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOv5等)、SSD和RetinaNet等。 四、算法原理 以YOLO系列为例,YOLO将目标检测视为回归问题,将输入图像一次性划分为多个区域,直接在输出预测边界框和类别概率。YOLO采用卷积网络来提取特征,使用全连接来得到预测值。其网络结构通常包含多个卷积和全连接,通过卷积提取图像特征,通过全连接输出预测结果。 五、应用领域 目标检测技术已经广泛应用于各个领域,为人们的生活带来了极大的便利。以下是一些主要的应用领域: 安全监控:在商场、银行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值