lee-to / moonshine-tree-resource
moonshine 的树形资源
1.2.1
2023-12-21 11:09 UTC
Requires
- php: ^8.0|^8.1|^8.2
- ext-curl: *
- ext-json: *
Conflicts
- moonshine/moonshine: <2.0
README
需求
- MoonShine v2.0+
安装
composer require lee-to/moonshine-tree-resource
开始使用
使用树形结构的示例
use Leeto\MoonShineTree\Resources\TreeResource; class CategoryResource extends TreeResource { // Required protected string $column = 'title'; protected string $sortColumn = 'sorting'; protected function pages(): array { return [ CategoryTreePage::make($this->title()), FormPage::make( $this->getItemID() ? __('moonshine::ui.edit') : __('moonshine::ui.add') ), DetailPage::make(__('moonshine::ui.show')), ]; } // ... fields, model, etc ... public function treeKey(): ?string { return 'parent_id'; } public function sortKey(): string { return 'sorting'; } // ... }
并添加组件
namespace App\MoonShine\Pages; use Leeto\MoonShineTree\View\Components\TreeComponent; use MoonShine\Pages\Crud\IndexPage; class CategoryTreePage extends IndexPage { protected function mainLayer(): array { return [ ...$this->actionButtons(), TreeComponent::make($this->getResource()), ]; } }
仅提供可排序使用
use Leeto\MoonShineTree\Resources\TreeResource; class CategoryResource extends TreeResource { // Required protected string $column = 'title'; protected string $sortColumn = 'sorting'; // ... fields, model, etc ... public function treeKey(): ?string { return null; } public function sortKey(): string { return 'sorting'; } // ... }
附加内容
public function itemContent(Model $item): string { return 'Custom content here'; }
关闭可排序或可包裹
public function wrapable(): bool { return false; } public function sortable(): bool { return false; }