feat: #20220801 日志记录增加
This commit is contained in:
parent
df2acd46db
commit
1a11b83a6f
@ -4,9 +4,9 @@ namespace App\Filters;
|
|||||||
|
|
||||||
class LogFilter extends Filters
|
class LogFilter extends Filters
|
||||||
{
|
{
|
||||||
protected function moudule($value)
|
protected function module($value)
|
||||||
{
|
{
|
||||||
return $this->builder->where('moudule', '=', $value);
|
return $this->builder->where('module', '=', $value);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function action($value)
|
protected function action($value)
|
||||||
|
|||||||
@ -17,6 +17,8 @@ class Controller extends BaseController
|
|||||||
'errorMessage' => '',
|
'errorMessage' => '',
|
||||||
];
|
];
|
||||||
|
|
||||||
|
protected $log;
|
||||||
|
|
||||||
protected function setValidatorFailResponse($errorMessage)
|
protected function setValidatorFailResponse($errorMessage)
|
||||||
{
|
{
|
||||||
return $this->res = [
|
return $this->res = [
|
||||||
@ -25,4 +27,23 @@ class Controller extends BaseController
|
|||||||
'errorMessage' => $errorMessage,
|
'errorMessage' => $errorMessage,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected function setBeforeUpdate($data)
|
||||||
|
{
|
||||||
|
$this->log->before_update = is_array($data) ? json_encode($data, 256) : $data;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function setAfterUpdate($data)
|
||||||
|
{
|
||||||
|
$this->log->after_update = is_array($data) ? json_encode($data, 256) : $data;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function addLog($targetId = 0, $targetField = '', $targetType = '')
|
||||||
|
{
|
||||||
|
if ($targetType) {
|
||||||
|
$this->log->target_type = $targetType;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->log->add($targetId, $targetField);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,12 +5,22 @@ namespace App\Http\Controllers\Goods;
|
|||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use App\Http\Resources\GoodsBrandResource;
|
use App\Http\Resources\GoodsBrandResource;
|
||||||
use App\Models\GoodsBrand;
|
use App\Models\GoodsBrand;
|
||||||
|
use App\Models\Log as LogModel;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\Validator;
|
use Illuminate\Support\Facades\Validator;
|
||||||
use Illuminate\Validation\Rule;
|
use Illuminate\Validation\Rule;
|
||||||
|
|
||||||
class GoodsBrandsController extends Controller
|
class GoodsBrandsController extends Controller
|
||||||
{
|
{
|
||||||
|
public function __construct(Request $request)
|
||||||
|
{
|
||||||
|
$this->log = new LogModel([
|
||||||
|
'module' => 'goods',
|
||||||
|
'action' => $request->getMethod(),
|
||||||
|
'target_type' => 'goods_brand',
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
public function index()
|
public function index()
|
||||||
{
|
{
|
||||||
$goodsBrands = GoodsBrand::query()->paginate();
|
$goodsBrands = GoodsBrand::query()->paginate();
|
||||||
@ -41,6 +51,8 @@ class GoodsBrandsController extends Controller
|
|||||||
'errorMessage' => '批量添加失败',
|
'errorMessage' => '批量添加失败',
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
$this->setAfterUpdate($goodsBrands);
|
||||||
|
$this->addLog(0, 'add');
|
||||||
|
|
||||||
return response($this->res, $this->res['httpCode']);
|
return response($this->res, $this->res['httpCode']);
|
||||||
}
|
}
|
||||||
@ -66,8 +78,11 @@ class GoodsBrandsController extends Controller
|
|||||||
return response($this->res, $this->res['httpCode']);
|
return response($this->res, $this->res['httpCode']);
|
||||||
}
|
}
|
||||||
$goodsBrand = GoodsBrand::query()->find($id);
|
$goodsBrand = GoodsBrand::query()->find($id);
|
||||||
|
$this->setBeforeUpdate($goodsBrand->name);
|
||||||
$goodsBrand->name = request('name');
|
$goodsBrand->name = request('name');
|
||||||
$goodsBrand->save();
|
$goodsBrand->save();
|
||||||
|
$this->setAfterUpdate($goodsBrand->name);
|
||||||
|
$this->addLog($id, 'name');
|
||||||
|
|
||||||
return new GoodsBrandResource($goodsBrand);
|
return new GoodsBrandResource($goodsBrand);
|
||||||
}
|
}
|
||||||
@ -77,6 +92,7 @@ class GoodsBrandsController extends Controller
|
|||||||
$goodsBrand = GoodsBrand::query()->find($id);
|
$goodsBrand = GoodsBrand::query()->find($id);
|
||||||
try {
|
try {
|
||||||
$goodsBrand->delete();
|
$goodsBrand->delete();
|
||||||
|
$this->addLog($id, 'status');
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
$this->res = [
|
$this->res = [
|
||||||
'httpCode' => 500,
|
'httpCode' => 500,
|
||||||
|
|||||||
@ -4,6 +4,7 @@ namespace App\Http\Controllers\Goods;
|
|||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use App\Http\Resources\GoodsSkuResource;
|
use App\Http\Resources\GoodsSkuResource;
|
||||||
|
use App\Models\Log as LogModel;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\DB;
|
use Illuminate\Support\Facades\DB;
|
||||||
use Illuminate\Support\Facades\Validator;
|
use Illuminate\Support\Facades\Validator;
|
||||||
@ -13,6 +14,15 @@ use App\Models\GoodsSku;
|
|||||||
|
|
||||||
class GoodsController extends Controller
|
class GoodsController extends Controller
|
||||||
{
|
{
|
||||||
|
public function __construct(Request $request)
|
||||||
|
{
|
||||||
|
$this->log = new LogModel([
|
||||||
|
'module' => 'goods',
|
||||||
|
'action' => $request->getMethod(),
|
||||||
|
'target_type' => 'goods_sku',
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
public function index(Request $request)
|
public function index(Request $request)
|
||||||
{
|
{
|
||||||
$goods = Goods::query()->filter()->get()->toArray();
|
$goods = Goods::query()->filter()->get()->toArray();
|
||||||
@ -67,8 +77,10 @@ class GoodsController extends Controller
|
|||||||
$item['goods_id'] = $goods->id;
|
$item['goods_id'] = $goods->id;
|
||||||
$goodsSkus[] = $item;
|
$goodsSkus[] = $item;
|
||||||
}
|
}
|
||||||
$goods->skus()->createMany($goodsSkus);
|
$collection = $goods->skus()->createMany($goodsSkus);
|
||||||
DB::commit();
|
DB::commit();
|
||||||
|
$this->setAfterUpdate($collection->toArray());
|
||||||
|
$this->addLog(0, 'add');
|
||||||
} catch (\Exception $exception) {
|
} catch (\Exception $exception) {
|
||||||
DB::rollBack();
|
DB::rollBack();
|
||||||
$this->res = [
|
$this->res = [
|
||||||
|
|||||||
@ -3,6 +3,7 @@
|
|||||||
namespace App\Http\Controllers\Goods;
|
namespace App\Http\Controllers\Goods;
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
|
use App\Models\Log as LogModel;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use App\Models\GoodsSku;
|
use App\Models\GoodsSku;
|
||||||
use App\Http\Resources\GoodsSkuResource;
|
use App\Http\Resources\GoodsSkuResource;
|
||||||
@ -12,9 +13,14 @@ use Maatwebsite\Excel\Facades\Excel;
|
|||||||
|
|
||||||
class GoodsSkusController extends Controller
|
class GoodsSkusController extends Controller
|
||||||
{
|
{
|
||||||
public function __construct()
|
public function __construct(Request $request)
|
||||||
{
|
{
|
||||||
$this->middleware(['role:super-admin','permission:publish articles|edit articles']);
|
// $this->middleware(['role:super-admin','permission:publish articles|edit articles']);
|
||||||
|
$this->log = new LogModel([
|
||||||
|
'module' => 'goods',
|
||||||
|
'action' => $request->getMethod(),
|
||||||
|
'target_type' => 'goods_sku',
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function index(Request $request)
|
public function index(Request $request)
|
||||||
@ -42,7 +48,9 @@ class GoodsSkusController extends Controller
|
|||||||
];
|
];
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
Excel::import(new GoodsSkusImport(), $request->file('goodsSkus'));
|
$collection = Excel::import(new GoodsSkusImport(), $request->file('goodsSkus'));
|
||||||
|
$this->setAfterUpdate($collection->toArray());
|
||||||
|
$this->addLog(0, 'import');
|
||||||
} catch (ValidationException $exception) {
|
} catch (ValidationException $exception) {
|
||||||
$this->setValidatorFailResponse($exception->validator->getMessageBag()->getMessages());
|
$this->setValidatorFailResponse($exception->validator->getMessageBag()->getMessages());
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,12 +5,22 @@ namespace App\Http\Controllers\Goods;
|
|||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use App\Http\Resources\GoodsTypeResource;
|
use App\Http\Resources\GoodsTypeResource;
|
||||||
use App\Models\GoodsType;
|
use App\Models\GoodsType;
|
||||||
|
use App\Models\Log as LogModel;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\Validator;
|
use Illuminate\Support\Facades\Validator;
|
||||||
use Illuminate\Validation\Rule;
|
use Illuminate\Validation\Rule;
|
||||||
|
|
||||||
class GoodsTypesController extends Controller
|
class GoodsTypesController extends Controller
|
||||||
{
|
{
|
||||||
|
public function __construct(Request $request)
|
||||||
|
{
|
||||||
|
$this->log = new LogModel([
|
||||||
|
'module' => 'goods',
|
||||||
|
'action' => $request->getMethod(),
|
||||||
|
'target_type' => 'goods_type',
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
public function index()
|
public function index()
|
||||||
{
|
{
|
||||||
$goodsTypes = GoodsType::query()->paginate();
|
$goodsTypes = GoodsType::query()->paginate();
|
||||||
@ -41,6 +51,8 @@ class GoodsTypesController extends Controller
|
|||||||
'errorMessage' => '批量添加失败',
|
'errorMessage' => '批量添加失败',
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
$this->setAfterUpdate($goodsTypes);
|
||||||
|
$this->addLog(0, 'add');
|
||||||
|
|
||||||
return response($this->res, $this->res['httpCode']);
|
return response($this->res, $this->res['httpCode']);
|
||||||
}
|
}
|
||||||
@ -66,8 +78,11 @@ class GoodsTypesController extends Controller
|
|||||||
return response($this->res, $this->res['httpCode']);
|
return response($this->res, $this->res['httpCode']);
|
||||||
}
|
}
|
||||||
$goodsType = GoodsType::query()->find($id);
|
$goodsType = GoodsType::query()->find($id);
|
||||||
|
$this->setBeforeUpdate($goodsType->name);
|
||||||
$goodsType->name = request('name');
|
$goodsType->name = request('name');
|
||||||
$goodsType->save();
|
$goodsType->save();
|
||||||
|
$this->setAfterUpdate($goodsType->name);
|
||||||
|
$this->addLog($id, 'name');
|
||||||
|
|
||||||
return new GoodsTypeResource($goodsType);
|
return new GoodsTypeResource($goodsType);
|
||||||
}
|
}
|
||||||
@ -76,6 +91,7 @@ class GoodsTypesController extends Controller
|
|||||||
{
|
{
|
||||||
$goodsType = GoodsType::query()->find($id);
|
$goodsType = GoodsType::query()->find($id);
|
||||||
$goodsType->delete();
|
$goodsType->delete();
|
||||||
|
$this->addLog($id, 'status');
|
||||||
|
|
||||||
return response($this->res, $this->res['httpCode']);
|
return response($this->res, $this->res['httpCode']);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,6 +3,7 @@
|
|||||||
namespace App\Http\Controllers\Permission;
|
namespace App\Http\Controllers\Permission;
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
|
use App\Models\Log as LogModel;
|
||||||
use Spatie\Permission\Models\Permission;
|
use Spatie\Permission\Models\Permission;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\Validator;
|
use Illuminate\Support\Facades\Validator;
|
||||||
@ -11,6 +12,15 @@ use App\Http\Resources\PermissionsResource;
|
|||||||
|
|
||||||
class PermissionsController extends Controller
|
class PermissionsController extends Controller
|
||||||
{
|
{
|
||||||
|
public function __construct(Request $request)
|
||||||
|
{
|
||||||
|
$this->log = new LogModel([
|
||||||
|
'module' => 'permission',
|
||||||
|
'action' => $request->getMethod(),
|
||||||
|
'target_type' => 'permission',
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
public function index()
|
public function index()
|
||||||
{
|
{
|
||||||
$permissions = Permission::query()->get();
|
$permissions = Permission::query()->get();
|
||||||
@ -51,8 +61,11 @@ class PermissionsController extends Controller
|
|||||||
return response($this->res, $this->res['httpCode']);
|
return response($this->res, $this->res['httpCode']);
|
||||||
}
|
}
|
||||||
$permission = Permission::query()->find($id);
|
$permission = Permission::query()->find($id);
|
||||||
|
$this->setBeforeUpdate($permission->name);
|
||||||
$permission->name = $request->name;
|
$permission->name = $request->name;
|
||||||
$permission->save();
|
$permission->save();
|
||||||
|
$this->setAfterUpdate($permission->name);
|
||||||
|
$this->addLog($id, 'name');
|
||||||
|
|
||||||
return new PermissionsResource($permission);
|
return new PermissionsResource($permission);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,6 +3,7 @@
|
|||||||
namespace App\Http\Controllers\Role;
|
namespace App\Http\Controllers\Role;
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
|
use App\Models\Log as LogModel;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\Validator;
|
use Illuminate\Support\Facades\Validator;
|
||||||
use Illuminate\Validation\Rule;
|
use Illuminate\Validation\Rule;
|
||||||
@ -12,6 +13,15 @@ use App\Http\Resources\RolesResource;
|
|||||||
|
|
||||||
class RolesController extends Controller
|
class RolesController extends Controller
|
||||||
{
|
{
|
||||||
|
public function __construct(Request $request)
|
||||||
|
{
|
||||||
|
$this->log = new LogModel([
|
||||||
|
'module' => 'role',
|
||||||
|
'action' => $request->getMethod(),
|
||||||
|
'target_type' => 'role',
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
public function index()
|
public function index()
|
||||||
{
|
{
|
||||||
$roles = Role::query()->get();
|
$roles = Role::query()->get();
|
||||||
@ -32,6 +42,8 @@ class RolesController extends Controller
|
|||||||
$role = new Role();
|
$role = new Role();
|
||||||
$role->name = $request->name;
|
$role->name = $request->name;
|
||||||
$role->save();
|
$role->save();
|
||||||
|
$this->setAfterUpdate($role->name);
|
||||||
|
$this->addLog($role->id, 'add');
|
||||||
|
|
||||||
return response($this->res, $this->res['httpCode']);
|
return response($this->res, $this->res['httpCode']);
|
||||||
}
|
}
|
||||||
@ -41,6 +53,8 @@ class RolesController extends Controller
|
|||||||
$role = Role::query()->findOrFail($id);
|
$role = Role::query()->findOrFail($id);
|
||||||
$permissions = Permission::query()->findOrFail($request->permissionIds);
|
$permissions = Permission::query()->findOrFail($request->permissionIds);
|
||||||
$role->syncPermissions($permissions);
|
$role->syncPermissions($permissions);
|
||||||
|
$this->setAfterUpdate($permissions->toArray());
|
||||||
|
$this->addLog($id, 'set', 'permission');
|
||||||
|
|
||||||
return response($this->res, $this->res['httpCode']);
|
return response($this->res, $this->res['httpCode']);
|
||||||
}
|
}
|
||||||
@ -61,8 +75,11 @@ class RolesController extends Controller
|
|||||||
return response($this->res, $this->res['httpCode']);
|
return response($this->res, $this->res['httpCode']);
|
||||||
}
|
}
|
||||||
$role = Role::query()->find($id);
|
$role = Role::query()->find($id);
|
||||||
|
$this->setBeforeUpdate($role->name);
|
||||||
$role->name = $request->name;
|
$role->name = $request->name;
|
||||||
$role->save();
|
$role->save();
|
||||||
|
$this->setAfterUpdate($role->name);
|
||||||
|
$this->addLog($id, 'name');
|
||||||
|
|
||||||
return new RolesResource($role);
|
return new RolesResource($role);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,6 +3,7 @@
|
|||||||
namespace App\Http\Controllers\User;
|
namespace App\Http\Controllers\User;
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
|
use App\Models\Log as LogModel;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Faker\Generator as Faker;
|
use Faker\Generator as Faker;
|
||||||
@ -12,6 +13,15 @@ use App\Http\Resources\UsersResource;
|
|||||||
|
|
||||||
class UsersController extends Controller
|
class UsersController extends Controller
|
||||||
{
|
{
|
||||||
|
public function __construct(Request $request)
|
||||||
|
{
|
||||||
|
$this->log = new LogModel([
|
||||||
|
'module' => 'user',
|
||||||
|
'action' => $request->getMethod(),
|
||||||
|
'target_type' => 'user',
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
public function index()
|
public function index()
|
||||||
{
|
{
|
||||||
$users = User::query()->where('id', '<>', 1)->paginate();
|
$users = User::query()->where('id', '<>', 1)->paginate();
|
||||||
@ -37,6 +47,8 @@ class UsersController extends Controller
|
|||||||
$user->password = $request->password;
|
$user->password = $request->password;
|
||||||
$user->api_token = Str::random(60);
|
$user->api_token = Str::random(60);
|
||||||
$user->save();
|
$user->save();
|
||||||
|
$this->setAfterUpdate($user->toArray());
|
||||||
|
$this->addLog($user->id, 'add');
|
||||||
|
|
||||||
return new UsersResource($user);
|
return new UsersResource($user);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,11 +9,12 @@ use App\Models\GoodsType;
|
|||||||
use Illuminate\Support\Collection;
|
use Illuminate\Support\Collection;
|
||||||
use Illuminate\Validation\Rule;
|
use Illuminate\Validation\Rule;
|
||||||
use Illuminate\Validation\ValidationException;
|
use Illuminate\Validation\ValidationException;
|
||||||
|
use Maatwebsite\Excel\Concerns\SkipsEmptyRows;
|
||||||
use Maatwebsite\Excel\Concerns\ToCollection;
|
use Maatwebsite\Excel\Concerns\ToCollection;
|
||||||
use Illuminate\Support\Facades\Validator;
|
use Illuminate\Support\Facades\Validator;
|
||||||
use App\Utils\ArrayUtils;
|
use App\Utils\ArrayUtils;
|
||||||
|
|
||||||
class GoodsSkusImport implements ToCollection
|
class GoodsSkusImport implements ToCollection, SkipsEmptyRows
|
||||||
{
|
{
|
||||||
private $statusMap = [
|
private $statusMap = [
|
||||||
'下架' => 0,
|
'下架' => 0,
|
||||||
@ -21,7 +22,6 @@ class GoodsSkusImport implements ToCollection
|
|||||||
'预警' => 2,
|
'预警' => 2,
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @throws ValidationException
|
* @throws ValidationException
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -3,6 +3,7 @@
|
|||||||
namespace App\Models;
|
namespace App\Models;
|
||||||
|
|
||||||
use App\Models\traits\Filter;
|
use App\Models\traits\Filter;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
|
||||||
class Log extends Model
|
class Log extends Model
|
||||||
{
|
{
|
||||||
@ -10,7 +11,7 @@ class Log extends Model
|
|||||||
|
|
||||||
//查询字段
|
//查询字段
|
||||||
public $fieldSearchable = [
|
public $fieldSearchable = [
|
||||||
'moudule',
|
'module',
|
||||||
'action',
|
'action',
|
||||||
'target_type',
|
'target_type',
|
||||||
'target_id',
|
'target_id',
|
||||||
@ -18,4 +19,28 @@ class Log extends Model
|
|||||||
'user_id',
|
'user_id',
|
||||||
'created_at',
|
'created_at',
|
||||||
];
|
];
|
||||||
|
|
||||||
|
public $fillable = [
|
||||||
|
'module',
|
||||||
|
'action',
|
||||||
|
'target_type',
|
||||||
|
'target_id',
|
||||||
|
'target_field',
|
||||||
|
'before_update',
|
||||||
|
'after_update',
|
||||||
|
];
|
||||||
|
|
||||||
|
public function setUserIdAttribute($value)
|
||||||
|
{
|
||||||
|
$this->attributes['user_id'] = Auth::id();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function add($targetId = 0, $targetField = '')
|
||||||
|
{
|
||||||
|
$this->attributes['user_id'] = Auth::id();
|
||||||
|
$this->attributes['target_id'] = $targetId;
|
||||||
|
$this->attributes['target_field'] = $targetField;
|
||||||
|
|
||||||
|
return $this->save();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -17,11 +17,11 @@ class CreateLogsTable extends Migration
|
|||||||
$table->bigIncrements('id');
|
$table->bigIncrements('id');
|
||||||
$table->string('module')->comment('模块');
|
$table->string('module')->comment('模块');
|
||||||
$table->string('action')->comment('操作');
|
$table->string('action')->comment('操作');
|
||||||
$table->string('target_type')->comment('目标类型');
|
$table->string('target_type')->nullable()->comment('目标类型');
|
||||||
$table->bigInteger('target_id')->comment('目标id');
|
$table->bigInteger('target_id')->nullable()->default(0)->comment('目标id');
|
||||||
$table->string('target_field')->comment('目标字段');
|
$table->string('target_field')->nullable()->comment('目标字段');
|
||||||
$table->text('before_update')->comment('更新前数据');
|
$table->text('before_update')->nullable()->comment('更新前数据');
|
||||||
$table->text('after_update')->comment('更新后数据');
|
$table->text('after_update')->nullable()->comment('更新后数据');
|
||||||
$table->bigInteger('user_id')->comment('操作人id');
|
$table->bigInteger('user_id')->comment('操作人id');
|
||||||
$table->timestamps();
|
$table->timestamps();
|
||||||
});
|
});
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user