[moka同学笔记]yii2.0数据库操作以及分页

1.model中models/article.php

 1 <?php
 2 
 3 namespace app\models;
 4 
 5 use Yii;
 6 
 7 /**
 8  * This is the model class for table "yii2_article".
 9  *
10  * @property string $id
11  * @property integer $category_id
12  * @property string $title
13  * @property string $image
14  * @property string $content
15  * @property string $create_at
16  * @property string $updata_at
17  */
18 class Article extends \yii\db\ActiveRecord
19 {
20     /**
21      * @inheritdoc
22      */
23     public static function tableName()
24     {
25         return 'yii2_article';
26     }
27 
28     /**
29      * @inheritdoc
30      */
31     public function rules()
32     {
33         return [
34             [['category_id'], 'integer'],
35             [['desc','content'], 'string'],
36             [['create_at', 'updata_at'], 'safe'],
37             [['title'], 'string', 'max' => 50],
38             [['image'], 'string', 'max' => 100]
39         ];
40     }
41 
42     /**
43      * @inheritdoc
44      */
45     public function attributeLabels()
46     {
47         return [
48             'id' => 'ID',
49             'category_id' => '栏目',
50             'title' => '标题',
51             'desc' => '描述',
52             'image' => '封面图片',
53             'content' => '内容',
54             'create_at' => '创建日期',
55             'updata_at' => '修改日期',
56         ];
57     }
58 
59     //根据文章查询栏目的信息,hasOne()因为一个文章只属于一个栏目,一比一的方法
60     public function getArticleCategory(){
61         return $this->hasOne(ArticleCategory::className(),['id'=>'category_id']);
62     }
63 }

 

2.控制器中ArticleController.php

 1 <?php
 2 
 3 namespace app\controllers;
 4 
 5 use Yii;
 6 use app\models\Article;
 7 use yii\data\ActiveDataProvider;
 8 use yii\db\Query;
 9 use yii\web\Controller;
10 use yii\web\NotFoundHttpException;
11 use yii\data\Pagination;
12 class ArticleController extends Controller
13 {    //public $layout="main";
14     public function actionIndex()
15     {
16         $article = Article::find();
17         $articleCount = clone $article;
18 
19         $pageSize = 5;
20 
21         $pages =new Pagination([
22             'totalCount'=>$articleCount->count(),
23             'pageSize'=>$pageSize
24         ]) ;
25 
26         $models = $article->offset($pages->offset)
27             ->limit($pages->limit)
28             ->orderBy('id DESC')
29             ->all();
30 
31         return $this->render('index',[
32             'models'=>$models,
33             'pages'=>$pages
34         ]);
35     }
36 }

3.视图中view/article/index.php

 1 <?php
 2 /**
 3  * Created by PhpStorm.
 4  * User: moka同学
 5  * Date: 2016/07/22
 6  * Time: 11:13
 7  */
 8 use yii\widgets\LinkPager;
 9 use \yii\helpers\Url;
10 ?>
11 <?php
12 foreach ($models as $model) {
13     ?>
14     <div class="artcicle-list">
15         <h4 class="text-left h4">
16             <a href="<?=Url::toRoute(['article/view','id'=>$model->id]);?>" class="not-set"><?= $model->title ?></a>
17             </h4>
18 
19         <p class="text-right">
20             <small><?= $model->create_at ?></small>
21         </p>
22         <div class="col-l">
23             <?= isset($model->image) ? "<div class='face-image'><img src='$model->image' style='width: 120px;height: 120px;margin-right: 10px;vertical-align: text-top '></div>" : ""; ?>
24             <div class="article-content fl"><?=mb_substr($model->content,0,400,'utf-8').'……' ?><a href="<?=Url::toRoute(['article/view','id'=>$model->id]);?>">查看详情</a></div>
25         </div>
26     </div>
27 <?php } ?>
28 <div class="pagination-sm text-center">
29     <?= LinkPager::widget([
30         'pagination' => $pages,
31         'options' => [
32             'class' => 'pagination',
33         ]
34     ]) ?>
35 </div>

 

这个是很基础的model使用,如有不对,请联系我。QQ1727728211

 

posted @ 2016-08-05 15:34  mokal同学  阅读(196)  评论(0编辑  收藏  举报