Yii2.0-advanced-6—联表查询加搜索分页

本文介绍了在Yii2.0高级模板下如何进行联表查询和分页设置,主要涉及Article模型与Column模型的关联查询。在Article模型中创建关联,然后在ArticleSearch中进行搜索和分页配置,最后在视图中展示结果。通过这种方法,可以方便地在前端实现数据的检索和分页显示。
摘要由CSDN通过智能技术生成

Yii2.0中使用联表查询有两种办法,第一种是查询构建器(Query Builder),第二种使用活动记录(Active Record),中文网对查询构建器讲的很详细,AR则说的不够详细,下面贴出在yii2.0高级模板下联表查询及分页设置和前端显示方法,以供参考。

两个表

{ {%article}} 和 { {%column}}

article.column_id关联column.id

1、要使用AR做关联查询,首先在models {Article} 中创建关联:

class Article extends \yii\db\ActiveRecord
{
    //这里声明被关联字段 column_name 是自建属性,指 column 表中的 name
    public $column_name;
    
    /**
     * @inheritdoc
     */
    public static function tableName()
    {
        return '{
  {%article}}';
    }
	...
 // 在文章模型中关联 column 表 一篇文章属于一个栏目 是一对一关系 用hasOne
    public function getColumn(){
        /**
        * 第一个参数为要关联的表模型类,
        * 第二个参数为关联字段 这里是:id 和 column_id 
        */
        return $this->hasOne(Column::className(), ['id' => 'column_id']);
    } 
    
}

2、在 ArticleSearch 中使用,

首先rule中要加上 column_name 字段验证,这让index中显示顶部的搜索表单

class BlogSearch extends Blog
{
    /**
     * @inheritdoc
     */
    public function rules()
    {
        return [
            [['id', 'views','column_id'], 'integer'],
            [['title', 'content', 'created_at', 'updated_at','column_name'], 'safe'],
        ];
    }
在search方法中加上分页条数设置:pagination参数

public function search($params)
    {
        $query = Article::find();
        // add conditions that should always apply here

        $dataProvider = new ActiveDataProvider([
            'query' => $query,
            'pagination' => [
                'pageSize' => 5,
            ],
        ]);

或者在控制器中这么写:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值