## è·åå¨
è·åå¨çä½ç¨æ¯å¯¹æ¨¡åå®ä¾çï¼åå§ï¼æ°æ®ååºèªå¨å¤çãä¸ä¸ªè·åå¨å¯¹åºæ¨¡åçä¸ä¸ªç¹æ®æ¹æ³ï¼è¯¥æ¹æ³å¿
须为`public`ç±»åï¼ï¼æ¹æ³å½åè§è为ï¼
>[info] ### get`FieldName`Attr
`FieldName`为æ°æ®è¡¨å段ç驼峰转æ¢ï¼å®ä¹äºè·åå¨ä¹åä¼å¨ä¸åæ
åµèªå¨è§¦åï¼
* 模åçæ°æ®å¯¹è±¡åå¼æä½ï¼`$model->field_name`ï¼ï¼
* 模åçåºååè¾åºæä½ï¼`$model->toArray()`å`toJson()`ï¼ï¼
* æ¾å¼è°ç¨`getAttr`æ¹æ³ï¼`$this->getAttr('field_name')`ï¼ï¼
è·åå¨çåºæ¯å
æ¬ï¼
* æ¶é´æ¥æå段çæ ¼å¼åè¾åºï¼
* éåææ举类åçè¾åºï¼
* æ°åç¶æå段çè¾åºï¼
* ç»åå段çè¾åºï¼
ä¾å¦ï¼æ们éè¦å¯¹ç¶æå¼è¿è¡è½¬æ¢ï¼å¯ä»¥ä½¿ç¨ï¼
~~~
<?php
namespace app\model;
use think\Model;
class User extends Model
{
public function getStatusAttr($value)
{
$status = [-1=>'å é¤',0=>'ç¦ç¨',1=>'æ£å¸¸',2=>'å¾
å®¡æ ¸'];
return $status[$value];
}
}
~~~
æ°æ®è¡¨çå段ä¼èªå¨è½¬æ¢ä¸ºé©¼å³°æ³ï¼ä¸è¬`status`å段çå¼éç¨æ°å¼ç±»åï¼æ们å¯ä»¥éè¿è·åå¨å®ä¹ï¼èªå¨è½¬æ¢ä¸ºå符串æè¿°ã
~~~
$user = User::find(1);
echo $user->status; // ä¾å¦è¾åºâæ£å¸¸â
~~~
è·åå¨è¿å¯ä»¥å®ä¹æ°æ®è¡¨ä¸ä¸åå¨çå段ï¼ä¾å¦ï¼
~~~
<?php
namespace app\model;
use think\Model;
class User extends Model
{
public function getStatusTextAttr($value,$data)
{
$status = [-1=>'å é¤',0=>'ç¦ç¨',1=>'æ£å¸¸',2=>'å¾
å®¡æ ¸'];
return $status[$data['status']];
}
}
~~~
> è·åå¨æ¹æ³ç第äºä¸ªåæ°ä¼ å
¥çæ¯å½åçæææ°æ®æ°ç»ã
æ们就å¯ä»¥ç´æ¥ä½¿ç¨status_textå段çå¼äºï¼ä¾å¦ï¼
~~~
$user = User::find(1);
echo $user->status_text; // ä¾å¦è¾åºâæ£å¸¸â
~~~
## è·ååå§æ°æ®
å¦æä½ å®ä¹äºè·åå¨çæ
åµä¸ï¼å¸æè·åæ°æ®è¡¨ä¸çåå§æ°æ®ï¼å¯ä»¥ä½¿ç¨ï¼
~~~
$user = User::find(1);
// éè¿è·åå¨è·åå段
echo $user->status;
// è·ååå§å段æ°æ®
echo $user->getData('status');
// è·åå
¨é¨åå§æ°æ®
dump($user->getData());
~~~
ç±äºèªå¨æ¶é´æ³çå¤ç没æèµ°è·åå¨çæ¹å¼ï¼å¦æè¦è·åèªå¨æ¶é´å段çåå§æ°æ®ï¼éè¦ä½¿ç¨
~~~
$user = User::find(1);
// éè¿è·åå¨è·åèªå¨æ¶é´å段
echo $user->create_time;
// è·åæ¶é´å段åå§å段æ°æ®
echo $user->getOrigin('create_time');
// è·åå
¨é¨åå§æ°æ®
dump($user->getOrigin());
~~~
## å¨æè·åå¨
å¯ä»¥æ¯æ对模å使ç¨å¨æè·åå¨ï¼æ éå¨æ¨¡åç±»ä¸å®ä¹è·åå¨æ¹æ³ã
~~~
User::withAttr('name', function($value, $data) {
return strtolower($value);
})->select();
~~~
> `withAttr`æ¹æ³æ¯æå¤æ¬¡è°ç¨ï¼å®ä¹å¤ä¸ªå段çè·åå¨ãå¦å¤æ³¨æï¼`withAttr`æ¹æ³ä¹åä¸è½å使ç¨æ¨¡åçæ¥è¯¢æ¹æ³ï¼å¿
须使ç¨Dbç±»çæ¥è¯¢æ¹æ³ã
>[danger] å¦æåæ¶è¿å¨æ¨¡åéé¢å®ä¹äºç¸åå段çè·åå¨ï¼åå¨æè·åå¨ä¼å
ï¼ä¹å°±æ¯å¯ä»¥ä¸´æ¶è¦çå®ä¹æ个å段çè·åå¨ã
æ¯æ对å
³è模åçå段使ç¨å¨æè·åå¨ï¼ä¾å¦ï¼
~~~
User::with('profile')->withAttr('profile.name', function($value, $data) {
return strtolower($value);
})->select();
~~~
>[danger] 注æï¼å¯¹äº`MorphTo`å
³èä¸æ¯æ使ç¨å¨æè·åå¨ã
并ä¸æ¯æ对`JSON`å段使ç¨è·åå¨ï¼ä¾å¦å¨æ¨¡åä¸å®ä¹äº`JSON`å段çè¯ï¼
~~~
<?php
namespace app\index\model;
use think\Model;
class User extends Model
{
// 设置jsonç±»åå段
protected $json = ['info'];
}
~~~
å¯ä»¥ä½¿ç¨ä¸é¢ç代ç å®ä¹JSONå段çè·åå¨ã
~~~
User::withAttr('info.name', function($value, $data) {
return strtolower($value);
})->select();
~~~
å¯ä»¥å¨æ¥è¯¢ä¹å使ç¨`withAttr`æ¹æ³ï¼ä¾å¦ï¼
~~~
User::select()->withAttr('name', function($value, $data) {
return strtolower($value);
});
~~~
- åºè¨
- åºç¡
- å®è£
- å¼åè§è
- ç®å½ç»æ
- é ç½®
- æ¶æ
- 请æ±æµç¨
- æ¶ææ»è§
- å ¥å£æ件
- å¤åºç¨æ¨¡å¼
- 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
- éå½
- å©æå½æ°
- å级æ导
- æ´æ°æ¥å¿