## 模åå段
模åçæ°æ®å段å对åºæ°æ®è¡¨çå段æ¯å¯¹åºçï¼é»è®¤ä¼èªå¨è·åï¼å
æ¬å段类åï¼ï¼ä½èªå¨è·åä¼å¯¼è´å¢å ä¸æ¬¡æ¥è¯¢ï¼å æ¤ä½ å¯ä»¥å¨æ¨¡åä¸æç¡®å®ä¹å段信æ¯é¿å
å¤ä¸æ¬¡æ¥è¯¢çå¼éã
~~~
<?php
namespace app\model;
use think\Model;
class User extends Model
{
// 设置å段信æ¯
protected $schema = [
'id' => 'int',
'name' => 'string',
'status' => 'int',
'score' => 'float',
'create_time' => 'datetime',
'update_time' => 'datetime',
];
}
~~~
> å段类åçå®ä¹å¯ä»¥ä½¿ç¨PHPç±»åæè
æ°æ®åºçå段类åé½å¯ä»¥ï¼å段类åå®ä¹çä½ç¨ä¸»è¦ç¨äºæ¥è¯¢çåæ°èªå¨ç»å®ç±»åã
>[danger] æ¶é´å段尽ééç¨å®é
çæ°æ®åºç±»åå®ä¹ï¼ä¾¿äºæ¶é´æ¥è¯¢çå段èªå¨è¯å«ãå¦ææ¯`json`ç±»åç´æ¥å®ä¹ä¸º`json`å³å¯ã
å¦æä½ æ²¡æå®ä¹`schema`å±æ§çè¯ï¼å¯ä»¥å¨é¨ç½²å®æåè¿è¡å¦ä¸æ令ã
~~~cmd
php think optimize:schema
~~~
è¿è¡åä¼èªå¨çææ°æ®è¡¨çå段信æ¯ç¼åã使ç¨å½ä»¤è¡ç¼åçä¼å¿æ¯Dbç±»çæ¥è¯¢ä»ç¶ææã
## å段类å
`schema`å±æ§ä¸æ¦å®ä¹ï¼å°±å¿
é¡»å®ä¹å®æ´çæ°æ®è¡¨å段类åã
å¦æä½ åªå¸æ对æ个å段å®ä¹éè¦èªå¨è½¬æ¢çç±»åï¼å¯ä»¥ä½¿ç¨`type`å±æ§ï¼ä¾å¦ï¼
~~~
<?php
namespace app\model;
use think\Model;
class User extends Model
{
// 设置å段èªå¨è½¬æ¢ç±»å
protected $type = [
'score' => 'float',
];
}
~~~
`type`å±æ§å®ä¹çä¸ä¸å®æ¯å®é
çå段ï¼ä¹æå¯è½æ¯ä½ çå段å«åã
## åºå¼å段
å¦æå 为åå²éçé®é¢ ï¼ä½ çæ°æ®è¡¨åå¨å¾å¤çåºå¼å段ï¼ä½ å¯ä»¥å¨æ¨¡åéé¢å®ä¹è¿äºä¸å使ç¨çå段ã
~~~
<?php
namespace app\model;
use think\Model;
class User extends Model
{
// 设置åºå¼å段
protected $disuse = [ 'status', 'type' ];
}
~~~
å¨æ¥è¯¢ååå
¥çæ¶åä¼å¿½ç¥å®ä¹ç`status`å`type`åºå¼å段ã
## è·åæ°æ®
å¨æ¨¡åå¤é¨è·åæ°æ®çæ¹æ³å¦ä¸
~~~
$user = User::find(1);
echo $user->create_time;
echo $user->name;
~~~
ç±äºæ¨¡åç±»å®ç°äº`ArrayAccess`æ¥å£ï¼æ以å¯ä»¥å½ææ°ç»ä½¿ç¨ã
~~~
$user = User::find(1);
echo $user['create_time'];
echo $user['name'];
~~~
å¦æä½ æ¯å¨æ¨¡åå
é¨è·åæ°æ®çè¯ï¼éè¦æ¹æï¼
~~~
$user = $this->find(1);
echo $user->getAttr('create_time');
echo $user->getAttr('name');
~~~
å¦åå¯è½ä¼åºç°ææ³ä¸å°çé误ã
## 模åèµå¼
å¯ä»¥ä½¿ç¨ä¸é¢ç代ç ç»æ¨¡å对象èµå¼
```
$user = new User();
$user->name = 'thinkphp';
$user->score = 100;
```
该æ¹å¼èµå¼ä¼èªå¨æ§è¡æ¨¡åçä¿®æ¹å¨ï¼å¦æä¸å¸ææ§è¡ä¿®æ¹å¨æä½ï¼å¯ä»¥ä½¿ç¨
```
$data['name'] = 'thinkphp';
$data['score'] = 100;
$user = new User($data);
```
æè
使ç¨
```
$user = new User();
$data['name'] = 'thinkphp';
$data['score'] = 100;
$user->data($data);
```
`data`æ¹æ³æ¯æ使ç¨ä¿®æ¹å¨
```
$user = new User();
$data['name'] = 'thinkphp';
$data['score'] = 100;
$user->data($data, true);
```
å¦æéè¦å¯¹æ°æ®è¿è¡è¿æ»¤ï¼å¯ä»¥ä½¿ç¨
```
$user = new User();
$data['name'] = 'thinkphp';
$data['score'] = 100;
$user->data($data, true, ['name','score']);
```
表示åªè®¾ç½®`data`æ°ç»ç`name`å`score`æ°æ®ã
## ä¸¥æ ¼åºåå段大å°å
é»è®¤æ
åµä¸ï¼ä½ ç模åæ°æ®å称åæ°æ®è¡¨å段åºè¯¥ä¿æä¸¥æ ¼ä¸è´ï¼ä¹å°±æ¯è¯´åºå大å°åã
~~~
$user = User::find(1);
echo $user->create_time; // æ£ç¡®
echo $user->createTime; // é误
~~~
>[danger] ä¸¥æ ¼åºåå段大å°åçæ
åµä¸ï¼å¦æä½ çæ°æ®è¡¨å段æ¯å¤§åï¼æ¨¡åè·åçæ¶åä¹å¿
须使ç¨å¤§åã
å¦æä½ å¸æå¨è·å模åæ°æ®çæ¶åä¸åºå大å°åï¼åææ¯æ°æ®è¡¨çå段å½åå¿
é¡»è§èï¼å³å°å+ä¸å线ï¼ï¼å¯ä»¥è®¾ç½®æ¨¡åç`strict`å±æ§ã
~~~
<?php
namespace app\model;
use think\Model;
class User extends Model
{
// 模åæ°æ®ä¸åºå大å°å
protected $strict = false,
}
~~~
ä½ ç°å¨å¯ä»¥ä½¿ç¨
~~~
$user = User::find(1);
// ä¸é¢ä¸¤ç§æ¹å¼é½ææ
echo $user->createTime;
echo $user->create_time;
~~~
## 模åæ°æ®è½¬é©¼å³°
`V6.0.4+`çæ¬å¼å§ï¼å¯ä»¥è®¾ç½®`convertNameToCamel`å±æ§ä½¿å¾æ¨¡åæ°æ®è¿å驼峰æ¹å¼å½åï¼åæä¹æ¯æ°æ®è¡¨çå段å½åå¿
é¡»è§èï¼å³å°å+ä¸å线ï¼ã
~~~
<?php
namespace app\model;
use think\Model;
class User extends Model
{
// æ°æ®è½¬æ¢ä¸ºé©¼å³°å½å
protected $convertNameToCamel = true,
}
~~~
ç¶åå¨æ¨¡åè¾åºçæ¶åå¯ä»¥ç´æ¥ä½¿ç¨é©¼å³°å½åçæ¹å¼è·åã
~~~
$user = User::find(1);
$data = $user->toArray();
echo $data['createTime']; // æ£ç¡®
echo $user['create_time']; // é误
~~~
- åºè¨
- åºç¡
- å®è£
- å¼åè§è
- ç®å½ç»æ
- é ç½®
- æ¶æ
- 请æ±æµç¨
- æ¶ææ»è§
- å ¥å£æ件
- å¤åºç¨æ¨¡å¼
- 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
- éå½
- å©æå½æ°
- å级æ导
- æ´æ°æ¥å¿