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

“最难不过坚持”

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

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

7441611 2655 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 (254)
Mysql (58)
DedeCms (33)
jQuery (67)
证件照 (1)
setInc (4)
setDec (4)
onclick (5)
<?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 10949
原来是这样use think\Config; 改成这样use think\facade\Config; 下面是官方手册的解释 配置获取 要使用Config类,首先需要在你的类文件中引入 use think\facade\Config; 或者(因为系统做了类库别名,其实就是调用think\facade\Config) u...
thinkPHP5 order多条件排序
ThinkPHP5.1 | 2017-10-24 10810
总结如下: //单一条件排序 $user = $this->where(['parentId'=>0)->field('userId,userName,userSort,isShow')->order('userSort', 'asc')->select(); //多个条件排序,可以多加一个order...
评论:0条
评论加载中...
发表评论