关于本站
“最难不过坚持”
本人承接扒站仿站,php网站维护,病毒查杀,网站编辑,网站改版,html制作
有需要网站维护,改版,病毒查杀,网站编辑,网站备案,html制作等相关的工作可以联系我。
本人有多年相关工作经验,也可提供免费咨询,交个朋友。
有需要探讨问题的朋友,也可以加我微信,共同探讨!
微信:15011482830 QQ:408917339
2712
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不好用
文章标签更多
<?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
原来是这样use think\Config;
改成这样use think\facade\Config;
下面是官方手册的解释
配置获取
要使用Config类,首先需要在你的类文件中引入
use think\facade\Config;
或者(因为系统做了类库别名,其实就是调用think\facade\Config)
u...
thinkPHP5 order多条件排序
总结如下:
//单一条件排序
$user = $this->where(['parentId'=>0)->field('userId,userName,userSort,isShow')->order('userSort', 'asc')->select();
//多个条件排序,可以多加一个order...
评论加载中...
前一篇: thinkphp5.1模型删除