代码拉取完成,页面将自动刷新
本公共包仅用于laravel框架,请开发同学先熟悉laravel相关文档
├── Constants #常量管理
├── Exceptions #异常服务相关
├── Listeners #监听
├── Log #日志
├── Middleware #中间件
├── Models #模型初始化
├── Providers #服务提供
├── Redis #redis初始化
├── Requests #验证初始化
├── Response #返回
├── Server #服务初始化
└── Utils # 工具集
composer require ethan-z/laravel-ext
| 服务(三位).模块(三位).code(3位)
| APP_ID(三位).模块id(三位).code(三位)
| 中文可重复定义,每个报错对应一个code,方便定位
| 如:ORD_OUT_001 = [200100001, '订单出库失败'];
$app->singleton(
Illuminate\Contracts\Http\Kernel::class,
// App\Http\Kernel::class
EthanZ\LaravelExt\Middleware\Kernel::class
);
$app->singleton(
Illuminate\Contracts\Debug\ExceptionHandler::class,
// App\Exceptions\Handler::class
EthanZ\LaravelExt\Exceptions\Handler::class
);
use EthanZ\LaravelExt\Response\Lang;
$lang = Lang::lang();
return $lang;
'locale' => app()->runningInConsole() ? 'en' : request()->header('lang'),
'providers' => [
// 自定义验证规则类.
\EthanZ\LaravelExt\Providers\ValidatorServiceProvider::class,
// 公共事件.
\EthanZ\LaravelExt\Providers\EventServiceProvider::class,
],
'redis' => [
'client' => env('REDIS_CLIENT', 'predis'),
'options' => [
'cluster' => env('REDIS_CLUSTER', 'redis'),
],
'default' => [
'url' => env('REDIS_URL'),
'host' => env('REDIS_HOST', '127.0.0.1'),
'username' => env('REDIS_USERNAME'),
'password' => env('REDIS_PASSWORD'),
'port' => env('REDIS_PORT', '6379'),
'database' => env('REDIS_DB', '0'),
],
'cache' => [
'url' => env('REDIS_URL'),
'host' => env('REDIS_HOST', '127.0.0.1'),
'username' => env('REDIS_USERNAME'),
'password' => env('REDIS_PASSWORD'),
'port' => env('REDIS_PORT', '6379'),
'database' => env('REDIS_CACHE_DB', '1'),
],
],
在env配置APP_ENV != prod则自动开启链路追踪 或 配置ADMIN_DEBUG在传参时传入对应的值
使用示例1:
throw new NormalException('USR_LOG_001');
使用示例2:
throw new LogException('USR_LOG_001', $e, trans('lang.USR_LOG_001'));
使用示例:
Service::request()
->setPath(FinanceUri::FINANCE_List)
->setParams(['typeIds'=>[1]])
->get();
a) 必须继承BaseRequest
b) 添加相应方法的场景
b) 添加验证规则
:
像id、time等相同的验证最好使用BaseRequest的通用验证
公共验证规则单独写,如:PageCommonRequest
c) 自定义通用规则
:
在Utils-》Rules.php、Attributes.php进行新增验证,在Providers-》ValidatorServiceProvider.php进行引入验证规则
UserRedis::query()
->setKey(UserRedisKey::TOKEN_USER, $token)
->get();
在Utils-》Tools.php进行新增
前端heard中传入lang:zh,en
拉取第三方库:composer require barryvdh/laravel-ide-helper --dev
生成模型注释:php artisan ide-helper:models "App\Models\Type"
软删除示例(1.删除 0.恢复):
FinanceModel::query()
->where('id', 1)
->softDelete();
$userData->softDelete();
忽略软删除(模型关联上也可使用):
->withoutGlobalScope('delete');
查询软删除数据:
->softDeleteData();
当前模型不使用:
public const DELETED_AT = '';
use Page, SoftDelete, OperationFields, GetSetColumns;
// OperationFields批量操作:查询当前客户数据,新增自动新增客户id、备注、创建时间、更新时间
public const OPERATION_FIELDS = [
'user_id',
'description',
];
batchInsert([...]);
// GetSetColumns数据降级
->getSetColumns(
['type.title' => 'type_title', 'top_type.title' => 'top_title'], // 降级字段转换
['type', 'topType'], // 降级后清除字段
'get'
);
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。