always-open / sidekick
一组辅助类,使您更容易打好这场好仗
v4.1.9
2023-08-15 17:34 UTC
Requires
- php: ^8.0.0|^8.1.0|^8.2.0
- illuminate/contracts: ^9.0|^10.0
- jdorn/sql-formatter: ^1.2
- league/flysystem-aws-s3-v3: ^3.0
- slickdeals/statsd: ~3.0
- spatie/laravel-package-tools: ^1.4
Requires (Dev)
- brianium/paratest: ^6.2
- nunomaduro/collision: ^6.0
- orchestra/testbench: ^7.0
- phpunit/phpunit: ^9.3
- spatie/laravel-ray: ^1.9
- vimeo/psalm: ^4.4
- 4.x-dev
- v4.1.9
- v4.1.8
- v4.1.7
- v4.1.6
- v4.1.5
- v4.1.4
- v4.1.3
- v4.1.2
- v4.1.1
- v4.1.0
- v4.0.0
- v3.x-dev
- v3.0.3
- v3.0.2
- v3.0.1
- v3.0.0
- v2.x-dev
- v2.1.2
- v2.1.0
- v2.0.0
- v1.4.0
- v1.3.0
- v1.2.0
- v1.1.0
- v1.0.1
- v1.0.0
- dev-fix/styling
- dev-feature/debounce-job-add-maximum-debounce-config-option
- dev-revert-laravel-9-package-updates
- dev-main
- dev-fix/atomic-action-serialization
- dev-chore/required-option-trait
This package is auto-updated.
Last update: 2024-09-15 20:10:25 UTC
README
一组辅助类,使您更容易打好这场好仗。
安装
您可以通过composer安装此包
composer require always-open/sidekick
版本支持
用法
辅助类
字符串辅助类
$ids = AlwaysOpen\Helpers\Strings::stringIdsToCollection('1,3,45, asdf,66,1,45,3'); var_dump($ids);
路由辅助类
此辅助类阻止了重定向循环的发生,其中可能会使用url()->previous()
,但用户可能直接输入了url,因此previous
和current
是相同的。此辅助类阻止这种情况发生,同时允许您指定在这种情况下要前往的位置。
如果用户可以编辑用户资料并从多个屏幕访问它,则保存后的重定向响应可能如下所示
return response()->redirectTo( AlwaysOpen\Helpers\Routes::toRouteIfBackIsLoop('user.report') );
在这里,用户将要么转到他们之前的URL,要么被发送到用户报告。
特质
按名称
将特质添加到您的模型中
<?php namespace App\Models; namespace AlwaysOpen\Sidekick\Models\Traits\ByName; class OrderStage extends Model { use ByName; const NEXT_DAY = 'Next Day'; ... }
使用特质通过名称获取模型
$overnight = OrderStage::byName('overnight');
当您使用常量进行操作时,效果很好
$overnight = OrderStage::byName(OrderStage::NEXT_DAY);
CascadeUpdate
如果您需要更新相关模型(如父子关系或文档上的行项目)的最后一次更新时间戳,则此特质非常有用。
在示例类Document
中,有多个LineItem
实例作为子实例。
在此示例中,您需要重写getRelationshipsToUpdate
方法
class LineItem extends Model { use CascadeUpdate; public function getRelationshipsToUpdate() : array { return [ 'Document', ]; } public function CascadeUpdate() : HasOne
当LineItem实例被保存时,拥有者的Document
上的UPDATED_AT
列也会被更新。
有序
此特质确保所有实例都有一个下一个排序列值。未来的TODO是当其中一个排序值被更新时,更新其他实例,以保持所有实例的正确顺序。
测试
composer test
变更日志
请参阅变更日志,了解最近有哪些变化。
贡献
请参阅贡献指南以获取详细信息。
安全漏洞
请查看我们的安全策略了解如何报告安全漏洞。
致谢
许可
MIT许可(MIT)。请参阅许可文件以获取更多信息。