thinkphp5.1模型查询
web ThinkPHP5.1 2019-01-15 2996 0
关于本站

“最难不过坚持”

本人承接扒站仿站,php网站维护,病毒查杀,网站编辑,网站改版,html制作

有需要网站维护,改版,病毒查杀,网站编辑,网站备案,html制作等相关的工作可以联系我。
本人有多年相关工作经验,也可提供免费咨询,交个朋友。
有需要探讨问题的朋友,也可以加我微信,共同探讨!
微信:15011482830 QQ:408917339

8290781 2698 39
最新评论
https://jueru.net/
评 留言
:weixiao:
评 留言
:shuijiao: :weiqu: :zhenbang: :leng:
评 留言
:yiwen: :yiwen: :yiwen: :yiwen:
评 EasySass: could not generate CSS file. See Output panel for details.
这个业务逻辑多少都有点奇怪了,阅读浏览次数增值在新闻详情页的控制器方法里setInc,这怎么还写进模型事件里了。如果非要用onAfterRead也可以,把新闻文章的内容单独分出来一个news_content表,然后把它和news做关联,然后给news_content表的onAfterRead事件做增值处理,这样点进新闻页内查询到文章内容时才会触发它。
评 TP6模型事件-查询后onAfterRead不好用
文章标签更多
ThinkPHP (260)
Mysql (59)
DedeCms (33)
jQuery (74)
证件照 (1)
setInc (4)
setDec (4)
onclick (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
<?php
namespace app\index\model;
use think\Model;
use think\Db;
 
class User extends Model {
    protected $pk = 'id';
    /**
     * 查询-模型查询和数据库查询方法的区别主要在于,模型中的查询的数据在获取的时候会经过获取器的处理,以及更加对象化的获取方式
     */
    public function selectFun1(){
        // 获取单个数据
        // 取出主键为1的数据
        $user = User::get(13);
        //echo $user->name;
        echo $user['name'];
         
        exit;
        return $rs;
    }
    /**
     * 查询-模型查询和数据库查询方法的区别主要在于,模型中的查询的数据在获取的时候会经过获取器的处理,以及更加对象化的获取方式
     */
    public function selectFun2(){
        // 使用查询构造器查询满足条件的数据
        $user = User::where('name', 'thinkphp')->find();
        //echo $user->name;
        echo $user['name'];
         
        exit;
        return $rs;
    }
    /**
     * 查询-V5.1.23+版本开始,可以使用findOrEmpty方法,当查询数据不存在的话,返回空模型而不是Null。
     */
    public function selectFun3(){
        // 使用查询构造器查询满足条件的数据
        $user = User::where('name', 'thinkphp2')->findOrEmpty();
        //echo $user->name;
        //echo $user['name'];
        echo $user->getAttr('name'); // 如果你是在模型内部获取模型数据,请不要使用$this->name的方式来获取数据,请使用$this->getAttr('name') 替代。-不太懂
         
        echo Db::getlastsql();
        exit;
        return $rs;
    }
    /**
     * 查询-获取多个数据
     */
    public function selectFun4(){
        // 根据主键获取多个数据
        $list = User::all('11,12,13');
        // 或者使用数组
        $list = User::all([14,15,13]);
        // 对数据集进行遍历操作
        foreach($list as $key=>$user){
            echo $user->getAttr('name').'<br>';
        }
        dump($list);
        echo Db::getlastsql();
        exit;
        return $rs;
    }
    /**
     * 查询-要更多的查询支持,一样可以使用查询构造器:
     */
    public function selectFun5(){
        // 使用查询构造器查询
        $list = User::where('status', 1)->limit(3)->order('id', 'asc')->select();
        foreach($list as $key=>$user){
            //echo $user->name;
            echo $user->getAttr('name').'<br>';
        }
        dump($list);
        echo Db::getlastsql();
        exit;
        return $rs;
    }
    /**
     * 查询-V5.1.21+版本开始,可以在all方法之前使用Db类的查询链式操作,
     */
    public function selectFun6(){
        // 使用查询构造器查询
        $list = User::where('status', 1)->limit(3)->order('id', 'asc')->all();
        foreach($list as $key=>$user){
            //echo $user->name;
            echo $user->getAttr('name').'<br>';
        }
        dump($list);
        echo Db::getlastsql();
        exit;
        return $rs;
    }
    /**
     * 查询-使用查询构造器
     */
    public function selectFun7(){
        $list = User::where('id',13)->find();
        $list = User::where('status',1)->order('id desc')->select();
        $list = User::where('status',1)->limit(10)->select();
        dump($list);
        echo Db::getlastsql();
        exit;
        return $rs;
    }
    /**
     * 查询-获取某个字段或者某个列的值
     */
    public function selectFun8(){
        // 获取某个用户的积分
        $list = User::where('id',13)->value('score');
        // 获取某个列的所有值
        $list = User::where('status',1)->column('name');
        // 以id为索引
        $list = User::where('status',1)->column('name','id');
        dump($list);
        echo Db::getlastsql();
        exit;
        return $rs;
    }
    /**
     * 查询-动态查询
     */
    public function selectFun9(){
        // 根据name字段查询用户
        $user = User::getByName('thinkphp');
        // 根据email字段查询用户
        $user = User::getByEmail('thinkphp@qq.com');
        dump($user);
        echo Db::getlastsql();
        exit;
        return $rs;
    }
    /**
     * 查询-聚合查询
     */
    public function selectFun10(){
        $user = User::count();
        $user = User::where('status','>',0)->count();
        $user = User::where('status',1)->avg('score');
        $user = User::max('score');
        dump($user);
        echo Db::getlastsql();
        exit;
        return $rs;
    }
    /**
     * 查询-使用游标查询
     */
    public function selectFun11(){
        foreach(User::where('status', 1)->cursor() as $user){
            //echo $user->name;
            echo $user->getAttr('name').'<br>';
        }
        dump($user);
        echo Db::getlastsql();
        exit;
        return $rs;
    }
    /**
     * 查询-查询缓存
     */
    public function selectFun(){
        // get方法和all方法的支持使用查询缓存,可以直接在第二个参数传入true表示开启查询缓存。
        $user = User::get(1,true);
        $list  = User::all('1,2,3',true);
        // 如果要设置缓存标识,则必须在第三个参数传入缓存标识。      
        $user = User::get(1,'','user');
        $list  = User::all('1,2,3','','user_list');
        dump($user);
        echo Db::getlastsql();
        exit;
        return $rs;
    }
    /**
     * 最佳实践-模型查询的最佳实践原则是:在模型外部使用静态方法进行查询,内部使用动态方法查询,包括使用数据库的查询构造器。模型的查询始终返回对象实例,但可以和数组一样使用。
     */
}

版权声明:本篇文章来源于网络。 来源链接

相关推荐
Non-static method think\Config::get() should not be called statically
ThinkPHP5.1 | 2018-12-29 11293
原来是这样use think\Config; 改成这样use think\facade\Config; 下面是官方手册的解释 配置获取 要使用Config类,首先需要在你的类文件中引入 use think\facade\Config; 或者(因为系统做了类库别名,其实就是调用think\facade\Config) u...
thinkPHP5 order多条件排序
ThinkPHP5.1 | 2017-10-24 11170
总结如下: //单一条件排序 $user = $this->where(['parentId'=>0)->field('userId,userName,userSort,isShow')->order('userSort', 'asc')->select(); //多个条件排序,可以多加一个order...
评论:0条
评论加载中...
发表评论