lee-to/moonshine-tree-resource

1.2.1 2023-12-21 11:09 UTC

This package is auto-updated.

Last update: 2024-09-21 12:45:24 UTC


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;
}