## 模åå®ä¹
å®ä¹ä¸ä¸ªæ¨¡åç±»å¾ç®åï¼ä¾å¦ä¸é¢æ¯ä¸ä¸ª`User`模åï¼
~~~
<?php
namespace app\model;
use think\Model;
class User extends Model
{
}
~~~
>[info] 请确ä¿ä½ å·²ç»å¨æ°æ®åºé
ç½®æ件ä¸é
ç½®äºæ°æ®åºè¿æ¥ä¿¡æ¯ï¼å¦ä¸æ¸
æ¥è¯·åèæ°æ®åºä¸ç«
模åä¼èªå¨å¯¹åºæ°æ®è¡¨ï¼æ¨¡åç±»çå½åè§åæ¯é¤å»è¡¨åç¼çæ°æ®è¡¨å称ï¼éç¨é©¼å³°æ³å½åï¼å¹¶ä¸é¦åæ¯å¤§åï¼ä¾å¦ï¼
| 模åå | 约å®å¯¹åºæ°æ®è¡¨ï¼å设æ°æ®åºçåç¼å®ä¹æ¯ `think_`ï¼ |
|-----|-----|
| User | think_user |
| UserType | think_user_type |
å¦æä½ çè§ååä¸é¢çç³»ç»çº¦å®ä¸ç¬¦åï¼é£ä¹éè¦è®¾ç½®Modelç±»çæ°æ®è¡¨å称å±æ§ï¼ä»¥ç¡®ä¿è½å¤æ¾å°å¯¹åºçæ°æ®è¡¨ã
>[danger] 模åèªå¨å¯¹åºçæ°æ®è¡¨å称é½æ¯éµå¾ªå°å+ä¸å线è§èï¼å¦æä½ ç表åæ大åçæ
åµï¼å¿
é¡»éè¿è®¾ç½®æ¨¡åç`table`å±æ§ã
å¦æä½ å¸æç»æ¨¡å类添å åç¼ï¼éè¦è®¾ç½®`name`å±æ§æè
`table`å±æ§ã
~~~
<?php
namespace app\model;
use think\Model;
class UserModel extends Model
{
protected $name = 'user';
}
~~~
## 模å设置
é»è®¤ä¸»é®ä¸º`id`ï¼å¦æä½ æ²¡æ使ç¨`id`ä½ä¸ºä¸»é®åï¼éè¦å¨æ¨¡åä¸è®¾ç½®å±æ§ï¼
~~~
<?php
namespace app\model;
use think\Model;
class User extends Model
{
protected $pk = 'uid';
}
~~~
å¦æä½ æ³æå®æ°æ®è¡¨çè³æ°æ®åºè¿æ¥çè¯ï¼å¯ä»¥ä½¿ç¨ï¼
~~~
<?php
namespace app\model;
use think\Model;
class User extends Model
{
// 设置å½å模å对åºçå®æ´æ°æ®è¡¨å称
protected $table = 'think_user';
// 设置å½å模åçæ°æ®åºè¿æ¥
protected $connection = 'db_config';
}
~~~
>[danger] `connection`å±æ§ä½¿ç¨ç¨é
ç½®åæ°åï¼éè¦å¨æ°æ®åºé
ç½®æ件ä¸ç`connections`åæ°ä¸æ·»å 对åºæ è¯ï¼ã
常ç¨ç模å设置å±æ§å
æ¬ï¼ä»¥ä¸å±æ§é½ä¸æ¯å¿
须设置ï¼ï¼
å±æ§|æè¿°
---|---
name|模ååï¼ç¸å½äºä¸å¸¦æ°æ®è¡¨ååç¼ç表åï¼é»è®¤ä¸ºå½å模åç±»åï¼
table|æ°æ®è¡¨åï¼é»è®¤èªå¨è·åï¼
suffix|æ°æ®è¡¨åç¼ï¼é»è®¤ä¸ºç©ºï¼
pk|主é®åï¼é»è®¤ä¸º`id`ï¼
connection|æ°æ®åºè¿æ¥ï¼é»è®¤è¯»åæ°æ®åºé
ç½®ï¼
query|模å使ç¨çæ¥è¯¢ç±»å称
field|模åå
许åå
¥çå段å表ï¼æ°ç»ï¼
schema|模å对åºæ°æ®è¡¨å段åç±»å
type|模åéè¦èªå¨è½¬æ¢çå段åç±»å
strict|æ¯å¦ä¸¥æ ¼åºåå段大å°åï¼é»è®¤ä¸ºtrueï¼
disuse|æ°æ®è¡¨åºå¼å段ï¼æ°ç»ï¼
>[danger] 模åä¸æ¯æ对æ°æ®è¡¨çåç¼åç¬è®¾ç½®ï¼å¹¶ä¸ä¹ä¸æ¨è使ç¨æ°æ®è¡¨çåç¼è®¾è®¡ï¼åºè¯¥ç¨ä¸åçåºåºåãå½ä½ çæ°æ®è¡¨æ²¡æåç¼çæ¶åï¼`name`å`table`å±æ§çå®ä¹æ¯æ²¡æåºå«çï¼å®ä¹ä»»ä½ä¸ä¸ªå³å¯ã
## 模ååå§å
模åæ¯æåå§åï¼åªéè¦å®ä¹`init`æ¹æ³ï¼ä¾å¦ï¼
~~~
<?php
namespace app\model;
use think\Model;
class User extends Model
{
// 模ååå§å
protected static function init()
{
//TODO:åå§åå
容
}
}
~~~
>[danger] `init`å¿
é¡»æ¯éææ¹æ³ï¼å¹¶ä¸åªå¨ç¬¬ä¸æ¬¡å®ä¾åçæ¶åæ§è¡ï¼å¹¶ä¸åªä¼æ§è¡ä¸æ¬¡
## 模åæä½
> å¨æ¨¡åä¸é¤äºå¯ä»¥è°ç¨æ°æ®åºç±»çæ¹æ³ä¹å¤ï¼æ¢å¥è¯è¯´ï¼**æ°æ®åºçæææ¥è¯¢æé å¨æ¹æ³æ¨¡åä¸é½å¯ä»¥æ¯æ**ï¼ï¼å¯ä»¥å®ä¹èªå·±çæ¹æ³ï¼æ以ä¹å¯ä»¥æ模åçææ¯æ°æ®åºçå¢å¼ºçã
模åçæä½æ¹æ³æ éåæ°æ®åºæ¥è¯¢ä¸æ ·è°ç¨å¿
é¡»é¦å
è°ç¨`table`æè
`name`æ¹æ³ï¼å 为模åä¼æç
§è§åèªå¨å¹é
对åºçæ°æ®è¡¨ï¼ä¾å¦ï¼
~~~
Db::name('user')->where('id','>',10)->select();
~~~
æ¹æ模åæä½çè¯å°±åæ
~~~
User::where('id','>',10)->select();
~~~
è½ç¶çèµ·æ¥æ¯ç¸åçæ¥è¯¢æ¡ä»¶ï¼ä½ä¸ä¸ªæææ¾çåºå«æ¯**æ¥è¯¢ç»æçç±»å**ä¸åã第ä¸ç§æ¹å¼çæ¥è¯¢ç»ææ¯ä¸ä¸ªï¼äºç»´ï¼æ°ç»ï¼è第äºç§æ¹å¼çæ¥è¯¢ç»ææ¯å
å«äºæ¨¡åï¼éåï¼çæ°æ®éãä¸è¿ï¼å¨å¤§å¤æ°æ
åµä¸ï¼è¿äºç§è¿åç±»åç使ç¨æ¹å¼å¹¶æ ææ¾åºå«ã
模åæä½åæ°æ®åºæä½çå¦å¤ä¸ä¸ªæ¾èåºå«æ¯æ¨¡åæ¯æå
æ¬è·åå¨ãä¿®æ¹å¨ãèªå¨æ¶é´åå
¥å¨å
çä¸ç³»åèªå¨åæä½åäºä»¶ï¼ç®åäºæ°æ®çååæä½ï¼ä½éä¹èæ¥çæ¯æ§è½ææä¸éï¼å
¶å®å¹¶æ²¡ä¸éï¼èæ¯èªå¨å¸®ä½ å¤çäºä¸äºåæ¬éè¦æå¨å¤ççæä½ï¼ï¼åé¢ä¼éæ¥é¢ç¥å°æ¨¡åçè¿äºç¹è²åè½ã
## å¨æåæ¢åç¼
æ°ç模åå¢å äºä¸ä¸ªæ°æ®è¡¨åç¼å±æ§ï¼å¯ä»¥ç¨äºå¤è¯è¨æè
æ°æ®å表ç模åæ¥è¯¢ï¼çå»ä¸ºå¤ä¸ªç¸åç»æç表å®ä¹å¤ä¸ªæ¨¡åç麻ç¦ã
é»è®¤çæ°æ®è¡¨åç¼å¯ä»¥å¨æ¨¡åç±»éé¢ç´æ¥å®ä¹`suffix`å±æ§ã
~~~
<?php
namespace app\model;
use think\Model;
class Blog extends Model
{
// å®ä¹é»è®¤ç表åç¼ï¼é»è®¤æ¥è¯¢ä¸ææ°æ®ï¼
protected $suffix = _cn';
}
~~~
>[danger] ä½ å¨æ¨¡åéé¢å®ä¹ç`name`å`table`å±æ§æ éå
å«åç¼å®ä¹
模åæä¾äºå¨æåæ¢æ¹æ³`suffix`å`setSuffix`ï¼ä¾å¦ï¼
```
// suffixæ¹æ³ç¨äºéææ¥è¯¢
$blog = Blog::suffix('_en')->find();
$blog->name = 'test';
$blog->save();
// setSuffixç¨äºå¨æ设置
$blog = new Blog($data);
$blog->setSuffix('_en')->save();
```
## 模åæ¹æ³ä¾èµæ³¨å
¥
å¦æä½ éè¦å¯¹æ¨¡åçæ¹æ³æ¯æä¾èµæ³¨å
¥ï¼å¯ä»¥æ模åçæ¹æ³æ¹æéå
çæ¹å¼ï¼ä¾å¦ï¼ä½ éè¦å¯¹è·åå¨æ¹æ³å¢å ä¾èµæ³¨å
¥
```
public function getTestFieldAttr($value,$data) {
return $this->invoke(function(Request $request) use($value,$data) {
return $data['name'] . $request->action();
});
}
```
ä¸ä»
ä»
æ¯è·åå¨æ¹æ³ï¼å¨ä»»ä½éè¦ä¾èµæ³¨å
¥çæ¹æ³é½å¯ä»¥æ¹é 为è°ç¨`invoke`æ¹æ³çæ¹å¼ï¼`invoke`æ¹æ³ç¬¬äºä¸ªåæ°ç¨äºä¼ å
¥éè¦è°ç¨çï¼æ°ç»ï¼åæ°ã
å¦æä½ éè¦ç´æ¥è°ç¨æ个已ç»å®ä¹ç模åæ¹æ³ï¼å设已ç»ä½¿ç¨äºä¾èµæ³¨å
¥ï¼ï¼å¯ä»¥ä½¿ç¨
```
protected function bar($name, Request $request) {
// ...
}
protected function invokeCall(){
return $this->invoke('bar',['think']);
}
```
- åºè¨
- åºç¡
- å®è£
- å¼åè§è
- ç®å½ç»æ
- é ç½®
- æ¶æ
- 请æ±æµç¨
- æ¶ææ»è§
- å ¥å£æ件
- å¤åºç¨æ¨¡å¼
- 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
- éå½
- å©æå½æ°
- å级æ导
- æ´æ°æ¥å¿