模åæ¥è¯¢åæ°æ®åºæ¥è¯¢æ¹æ³çåºå«ä¸»è¦å¨äºï¼æ¨¡åä¸çæ¥è¯¢çæ°æ®å¨è·åçæ¶åä¼ç»è¿è·åå¨çå¤çï¼ä»¥åæ´å 对象åçè·åæ¹å¼ã
>[danger] 模åæ¥è¯¢é¤äºä½¿ç¨èªèº«çæ¥è¯¢æ¹æ³å¤ï¼ä¸æ ·å¯ä»¥ä½¿ç¨æ°æ®åºçæ¥è¯¢æé å¨ï¼è¿åçé½æ¯æ¨¡å对象å®ä¾ãä½å¦æç´æ¥è°ç¨æ¥è¯¢å¯¹è±¡çæ¹æ³ï¼IDEå¯è½æ æ³å®æèªå¨æ示ã
## è·åå个æ°æ®
è·åå个æ°æ®çæ¹æ³å
æ¬ï¼
~~~
// ååºä¸»é®ä¸º1çæ°æ®
$user = User::find(1);
echo $user->name;
// 使ç¨æ¥è¯¢æé å¨æ¥è¯¢æ»¡è¶³æ¡ä»¶çæ°æ®
$user = User::where('name', 'thinkphp')->find();
echo $user->name;
~~~
模å使ç¨`find`æ¹æ³æ¥è¯¢ï¼å¦ææ°æ®ä¸åå¨è¿å`Null`ï¼å¦åè¿åå½å模åç对象å®ä¾ãå¦æå¸ææ¥è¯¢æ°æ®ä¸åå¨åè¿åä¸ä¸ªç©ºæ¨¡åï¼å¯ä»¥ä½¿ç¨ã
```
$user = User::findOrEmpty(1);
```
ä½ å¯ä»¥ç¨`isEmpty`æ¹æ³æ¥å¤æå½åæ¯å¦ä¸ºä¸ä¸ªç©ºæ¨¡åã
```
$user = User::where('name', 'thinkphp')->findOrEmpty();
if (!$user->isEmpty()) {
echo $user->name;
}
```
>[danger] å¦æä½ æ¯å¨æ¨¡åå
é¨è·åæ°æ®ï¼è¯·ä¸è¦ä½¿ç¨`$this->name`çæ¹å¼æ¥è·åæ°æ®ï¼è¯·ä½¿ç¨`$this->getAttr('name')` æ¿ä»£ã
## è·åå¤ä¸ªæ°æ®
ååºå¤ä¸ªæ°æ®ï¼
~~~
// æ ¹æ®ä¸»é®è·åå¤ä¸ªæ°æ®
$list = User::select([1,2,3]);
// 对æ°æ®éè¿è¡éåæä½
foreach($list as $key=>$user){
echo $user->name;
}
~~~
è¦æ´å¤çæ¥è¯¢æ¯æï¼ä¸æ ·å¯ä»¥ä½¿ç¨æ¥è¯¢æé å¨ï¼
~~~
// 使ç¨æ¥è¯¢æé å¨æ¥è¯¢
$list = User::where('status', 1)->limit(3)->order('id', 'asc')->select();
foreach($list as $key=>$user){
echo $user->name;
}
~~~
>æ¥è¯¢æé å¨æ¹å¼çæ¥è¯¢å¯ä»¥æ¯ææ´å¤çè¿è´¯æä½ï¼å
æ¬æåºãæ°ééå¶çã
### èªå®ä¹æ°æ®é对象
模åç`select`æ¹æ³è¿åçæ¯ä¸ä¸ªå
å«å¤ä¸ªæ¨¡åå®ä¾çæ°æ®é对象ï¼é»è®¤ä¸º`\think\model\Collection`ï¼ï¼æ¯æå¨æ¨¡åä¸åç¬è®¾ç½®æ¥è¯¢æ°æ®éçè¿å对象çå称ï¼ä¾å¦ï¼
~~~
<?php
namespace app\index\model;
use think\Model;
class User extends Model
{
// 设置è¿åæ°æ®éç对象å
protected $resultSetType = '\app\common\Collection';
}
~~~
`resultSetType`å±æ§ç¨äºè®¾ç½®èªå®ä¹çæ°æ®é使ç¨çç±»åï¼è¯¥ç±»åºå½ç»§æ¿ç³»ç»ç`think\model\Collection`ç±»ã
## 使ç¨æ¥è¯¢æé å¨
å¨æ¨¡åä¸ä»ç¶å¯ä»¥è°ç¨æ°æ®åºçé¾å¼æä½åæ¥è¯¢æ¹æ³ï¼å¯ä»¥å
åå©ç¨æ°æ®åºçæ¥è¯¢æé å¨çä¼å¿ã
ä¾å¦ï¼
~~~php
User::where('id',10)->find();
User::where('status',1)->order('id desc')->select();
User::where('status',1)->limit(10)->select();
~~~
使ç¨æ¥è¯¢æé å¨ç´æ¥ä½¿ç¨éææ¹æ³è°ç¨å³å¯ï¼æ éå
å®ä¾å模åã
### è·åæ个å段æè
æ个åçå¼
~~~php
// è·åæ个ç¨æ·ç积å
User::where('id',10)->value('score');
// è·åæ个åçææå¼
User::where('status',1)->column('name');
// 以id为索å¼
User::where('status',1)->column('name','id');
~~~
>[danger] `value`å`column`æ¹æ³è¿åçä¸åæ¯ä¸ä¸ªæ¨¡å对象å®ä¾ï¼èæ¯çº¯ç²¹çå¼æè
æ个åçæ°ç»ã
### å¨ææ¥è¯¢
æ¯ææ°æ®åºçå¨ææ¥è¯¢æ¹æ³ï¼ä¾å¦ï¼
~~~
// æ ¹æ®nameå段æ¥è¯¢ç¨æ·
$user = User::getByName('thinkphp');
// æ ¹æ®emailå段æ¥è¯¢ç¨æ·
$user = User::getByEmail('thinkphp@qq.com');
~~~
### èåæ¥è¯¢
åæ ·å¨æ¨¡åä¸ä¹å¯ä»¥è°ç¨æ°æ®åºçèåæ¹æ³æ¥è¯¢ï¼ä¾å¦ï¼
~~~
User::count();
User::where('status','>',0)->count();
User::where('status',1)->avg('score');
User::max('score');
~~~
注æï¼å¦æä½ çå段ä¸æ¯æ°åç±»åï¼æ¯ä½¿ç¨`max`/`min`çæ¶åï¼éè¦å ä¸ç¬¬äºä¸ªåæ°ã
```
User::max('name', false);
```
### æ°æ®åæ¹å¤ç
模åä¹å¯ä»¥æ¯æ对è¿åçæ°æ®åæ¹å¤çï¼è¿å¨å¤ç大éæ°æ®çæ¶åé常æç¨ï¼ä¾å¦ï¼
~~~
User::chunk(100, function ($users) {
foreach($users as $user){
// å¤çuser模å对象
}
});
~~~
## 使ç¨æ¸¸æ æ¥è¯¢
模åä¹å¯ä»¥ä½¿ç¨æ°æ®åºç`cursor`æ¹æ³è¿è¡æ¸¸æ æ¥è¯¢ï¼è¿åçæå¨å¯¹è±¡
~~~
foreach(User::where('status', 1)->cursor() as $user){
echo $user->name;
}
~~~
`user`åéæ¯ä¸ä¸ªæ¨¡å对象å®ä¾ã
## æä½³å®è·µ
>[info] 模åæ¥è¯¢çæä½³å®è·µååæ¯ï¼å¨æ¨¡åå¤é¨ä½¿ç¨éææ¹æ³è¿è¡æ¥è¯¢ï¼å
é¨ä½¿ç¨å¨ææ¹æ³æ¥è¯¢ï¼å
æ¬ä½¿ç¨æ°æ®åºçæ¥è¯¢æé å¨ã
- åºè¨
- åºç¡
- å®è£
- å¼åè§è
- ç®å½ç»æ
- é ç½®
- æ¶æ
- 请æ±æµç¨
- æ¶ææ»è§
- å ¥å£æ件
- å¤åºç¨æ¨¡å¼
- URL访é®
- 容å¨åä¾èµæ³¨å ¥
- æå¡
- é¨é¢
- ä¸é´ä»¶
- äºä»¶
- è·¯ç±
- è·¯ç±å®ä¹
- åéè§å
- è·¯ç±å°å
- è·¯ç±åæ°
- è·¯ç±ä¸é´ä»¶
- è·¯ç±åç»
- èµæºè·¯ç±
- 注解路ç±
- è·¯ç±ç»å®
- ååè·¯ç±
- MISSè·¯ç±
- è·¨å请æ±
- URLçæ
- æ§å¶å¨
- æ§å¶å¨å®ä¹
- åºç¡æ§å¶å¨
- 空æ§å¶å¨
- èµæºæ§å¶å¨
- æ§å¶å¨ä¸é´ä»¶
- 请æ±
- 请æ±å¯¹è±¡
- 请æ±ä¿¡æ¯
- è¾å ¥åé
- 请æ±ç±»å
- HTTP头信æ¯
- 伪éæ
- åæ°ç»å®
- 请æ±ç¼å
- ååº
- ååºè¾åº
- ååºåæ°
- éå®å
- æ件ä¸è½½
- æ°æ®åº
- è¿æ¥æ°æ®åº
- åå¸å¼æ°æ®åº
- æ¥è¯¢æé å¨
- æ¥è¯¢æ°æ®
- æ·»å æ°æ®
- æ´æ°æ°æ®
- å é¤æ°æ®
- æ¥è¯¢è¡¨è¾¾å¼
- é¾å¼æä½
- where
- table
- alias
- field
- strict
- limit
- page
- order
- group
- having
- join
- union
- distinct
- lock
- cache
- comment
- fetchSql
- force
- partition
- failException
- sequence
- replace
- extra
- duplicate
- procedure
- èåæ¥è¯¢
- å页æ¥è¯¢
- æ¶é´æ¥è¯¢
- é«çº§æ¥è¯¢
- è§å¾æ¥è¯¢
- JSONå段
- åæ¥è¯¢
- åçæ¥è¯¢
- æ¥è¯¢äºä»¶
- è·åå¨
- äºå¡æä½
- åå¨è¿ç¨
- æ°æ®é
- æ°æ®åºé©±å¨
- 模å
- å®ä¹
- 模åå段
- æ°å¢
- æ´æ°
- å é¤
- æ¥è¯¢
- æ¥è¯¢èå´
- JSONå段
- è·åå¨
- ä¿®æ¹å¨
- æç´¢å¨
- æ°æ®é
- èªå¨æ¶é´æ³
- åªè¯»å段
- 软å é¤
- ç±»å转æ¢
- 模åè¾åº
- 模åäºä»¶
- 模åå ³è
- ä¸å¯¹ä¸å ³è
- ä¸å¯¹å¤å ³è
- è¿ç¨ä¸å¯¹å¤
- è¿ç¨ä¸å¯¹ä¸
- å¤å¯¹å¤å ³è
- å¤æå ³è
- å ³èé¢è½½å ¥
- å ³èç»è®¡
- å ³èè¾åº
- è§å¾
- 模æ¿åé
- è§å¾è¿æ»¤
- 模æ¿æ¸²æ
- 模æ¿å¼æ
- è§å¾é©±å¨
- é误åæ¥å¿
- å¼å¸¸å¤ç
- æ¥å¿å¤ç
- è°è¯
- è°è¯æ¨¡å¼
- Traceè°è¯
- SQLè°è¯
- åéè°è¯
- è¿ç¨è°è¯
- éªè¯
- éªè¯å¨
- éªè¯è§å
- é误信æ¯
- éªè¯åºæ¯
- è·¯ç±éªè¯
- å ç½®è§å
- 表å令ç
- 注解éªè¯
- æ项
- ç¼å
- Session
- Cookie
- å¤è¯è¨
- ä¸ä¼
- å½ä»¤è¡
- å¯å¨å ç½®æå¡å¨
- æ¥ççæ¬
- èªå¨çæåºç¨ç®å½
- å建类åºæ件
- æ¸ é¤ç¼åæ件
- çææ°æ®è¡¨å段ç¼å
- çæè·¯ç±æ å°ç¼å
- è¾åºè·¯ç±å®ä¹
- èªå®ä¹æ令
- æ©å±åº
- æ°æ®åºè¿ç§»å·¥å ·
- Workerman
- thinkå©æå·¥å ·åº
- éªè¯ç
- Swoole
- éå½
- å©æå½æ°
- å级æ导
- æ´æ°æ¥å¿