执行顺序:
setIndexRowDo(字段) → setIndexListDo(字段) → indexData(控制器)
方式1:控制器事件
<?php
namespace app\controller;
use app\BaseController;
class User extends BaseController
{
use \tpScriptVueCurd\base\controller\Controller;
public function init(): void
{
$this->title='人员信息';
$this->md=\app\model\User::make($this);
}
/**
* 列表的数据会执行此操作,可在此处进行控制
*/
protected function indexData(FunControllerIndexData $option): void
{
foreach ($option->data as $k=>$v){
$option->data[$k]['要改变或添加的字段']='设置字段的值';
}
}
}
方式2:字段事件
<?php
namespace app\model;
use think\Collection;
use tpScriptVueCurd\base\model\BaseModel;
use tpScriptVueCurd\field\RadioField;
use tpScriptVueCurd\field\StringField;
use tpScriptVueCurd\FieldCollection;
use tpScriptVueCurd\ModelField;
class User extends BaseModel
{
/**
* 表字段配置
* @return FieldCollection
*/
public function fields(): FieldCollection
{
$sexField=RadioField::init('sex', '性别');
$sexField->pushFieldDo()
//当sex字段在列表中获取时,会执行此事件
->setIndexListDo(function (Collection $list,?BaseModel $base,ModelField $field){
//这里可对整个列表进行处理
foreach ($list as $k=>$v){
$v['要改变或添加的字段']='设置字段的值';
}
})
//当sex字段在列表中获取时,会执行此事件
->setIndexRowDo(function (BaseModel $row,?BaseModel $base,ModelField $field){
//这里可对单条数据进行处理
$row['要改变或添加的字段']='设置字段的值';
});
return new FieldCollection([
StringField::init('name','姓名'),
$sexField,
]);
}
}