您的位置:首页 > 编程语言 > PHP开发

yii2.0控制层操作分页增删

2016-10-31 15:08 281 查看
增删改查

查询

<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>


分页

<span style="font-size:18px;">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,]);
}]);
} </span>

<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> =&
4000
gt; $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, //控制每页显示的页数
]);
?>


添加

<span style="font-size:18px;">//使用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>


修改

<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]); //跳转视图页面并传值
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: