uocnv / orchid-action
Orchid 的授权操作
1.0.3
2023-12-27 10:26 UTC
Requires
- php: ^8.1|^8.2
- illuminate/support: ^9.0
- orchid/platform: ^13.6
Requires (Dev)
- phpunit/phpunit: ~9.0
- squizlabs/php_codesniffer: ^3.5
README
为 Orchid 的列表面板添加了具有权限的操作按钮
安装
您可以通过 composer 安装此包
composer require uocnv/orchid-action
用法
创建一个操作
php artisan orchid-action:make CustomAction
默认情况下,所有操作都放置在 app/Actions/Orchid 目录中。操作必须由两个方法和权限组成。方法按钮定义名称、图标、对话框等。处理方法直接处理操作。
namespace App\Actions\Orchid; use Illuminate\Http\Request; use Orchid\Screen\Actions\Button; use Orchid\Support\Facades\Toast; use Uocnv\OrchidAction\Action; class CustomAction extends Action { protected string $permission = 'action.custom'; /** * The button of the action. * * @return Button */ public function button(): Button { return Button::make('Run Custom Action')->icon('bs.fire'); } /** * Perform the action on the given models. * * @param Request $request */ public function handle(Request $request) { Toast::message('It worked!'); } }
在 handle
方法中,您可以执行完成操作所需的任何任务。
然后在布局中添加操作以使用
... TD::make('Action') ->alignCenter() ->render(function (User $user) { return ActiveUser::init([ 'userId' => $user->use_id, 'type' => ActiveStatus::INACTIVE ])?->cansee(!is_null($user->deleted_at)); }) ...
在屏幕中必须使用 Actionable
特性
namespace App\Http\Controllers\Screens; use Illuminate\Http\Request; use Orchid\Screen\Screen; use Uocnv\OrchidAction\Traits\Actionable; class Idea extends Screen { use Actionable; /** * Fetch data to be displayed on the screen. * * @return array */ public function query() : array { return []; } /** * The name of the screen is displayed in the header. * * @return string|null */ public function name(): ?string { return "Idea Screen"; } /** * The screen's layout elements. * * @return \Orchid\Screen\Layout[]|string[] */ public function layout() : array { return []; } }
变更日志
请参阅 CHANGELOG 了解最近的变化信息。
贡献
请参阅 CONTRIBUTING 了解详细信息。
安全
如果您发现任何安全相关的问题,请通过电子邮件 uocnv.soict.hust@gmail.com 联系,而不是使用问题跟踪器。
鸣谢
许可证
MIT 许可证 (MIT)。请参阅 许可证文件 了解更多信息。
Laravel 包模板
此包是使用 Laravel 包模板 生成的。