public static function onBeforeInsert(QbModel $model): bool
{
\app\library\Utils::generalModelSn($model, 'VOU', 'user_name');
return true;
}
* 生成
* @param QbModel $model
* @param string|Closure $prefix 前缀
* @param string $field
* @return void
*/
public static function generalModelSn(QbModel $model, $prefix = '', string $field = 'sn')
{
if (!$model->getAttr($field)) {
do {
if ($prefix instanceof Closure) {
$sn = $prefix();
} else {
$sn = generate_no($prefix);
}
} while ($model->queryWithTrashed()->where($field, $sn)->value('id'));
$model->set($field, $sn);
}
}
function generate_no($prefix = '')
{
return $prefix . date('ymd') . str_pad(mt_rand(1, 999999), 6, '0', STR_PAD_LEFT);
}