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,
            ],
        ]);

或者在控制器中这么写:

在页面上查找一个或多个单词,不要担心他们的连接或变形(更换玻璃杯=更换所有的眼镜) 使用efTwo(F2)Advanced在页面上查找,您可以轻松浏览页面:只需打开新的搜索框(点按两次F),键入您要查找的单词,然后efTwo就会突出显示页面上的所有单词他们使用的是哪种变化形式(或者,如果您通过搜索引擎访问了该页面,则关键字可能已经在框中。您不必担心尝试创建一个可能与该页面匹配的奇怪单词:如果您正在搜索对于“替换”一词,您也希望看到“替换”,因此您最终需要在搜索栏中输入“替换”。使用efTwo,您可以输入“替换”或“替换”,它将搜索全部efTwo的真正必要且独特的功能。只需从搜索词中查找特定单词,只需单击该单词,搜索框就会更改:如果您单击下一个按钮或按下热键(例如F2),它只会跳到页面上的那个单词。请在下面的评论框中留下评论,错误报告或功能请求。为插件添功能,但是直到那时,我很高兴看到您的反馈! ============其他人对我们的看法Lifehacker Australia http://www.lifehacker.com.au/2011/07/eftwo-supercharges-find-on-browser-pages/ Lifehacker美国http ://lifehacker.com/5831195/eftwo-supercharges-chromes-find-on-page-by-finding-multiple-words-at-once-word-variations Lifehacker Japan http://www.lifehacker.jp/2011/ 08 / 110818eftwo.html上瘾技巧http://www.addictivetips.com/internet-tips/eftwo-f2-finds-multiple-words-their-inflections-on-a-page-chrome/ Makeuseof http://www.makeuseof .com / dir / eftwo-word-inflections / ============新功能1.4修复随着时间的流逝而丢失设置的错误(最终)使扩展程序与新的Chrome版本1.3.1兼容强大的Google关键字检测1.3.0修复了Google搜索关键字,错误修正1.2.1错误修正1.2.0引用了搜索词支持(部分)错误修正1.1.5添了对更多搜索引擎的支持(当前已测试Google,Bing,Yahoo,可能会更多受支持)添了悬停删除功能,可轻松删除单词固定设置页面d esign支持快捷滚动(再次按热键可滚动到下一个关键字)错误修正1.1.0跳转并突出显示页面上的特定单词(单击该单词,然后使用“下一个/上一个”按钮)。错误修正1.0.4(错误修正版本)1.0.3滚动条上的突出显示标记平滑滚动错误修正1.0.2(错误修正版本) 支持语言:English
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值