PHP 怎么PHP Orchid

wen PHP项目 3

本文目录导读:

PHP 怎么PHP Orchid

  1. Orchid 简介
  2. 安装步骤
  3. 快速开始
  4. 常用功能
  5. 权限控制
  6. 自定义样式
  7. 常用命令
  8. 部署注意事项
  9. 学习资源

我理解您想了解PHP Orchid的相关信息,Orchid是一个流行的PHP后台管理面板框架,让我为您详细介绍。

Orchid 简介

Orchid 是一个基于 Laravel 框架的后台管理面板,它提供了优雅的UI和丰富的功能组件,帮助开发者快速构建管理后台。

安装步骤

环境要求

- PHP >= 8.0
- Laravel >= 9.0
- Composer

安装Orchid

# 创建新的Laravel项目(可选)
composer create-project laravel/laravel your-project
# 安装Orchid
composer require orchid/platform
# 运行安装命令
php artisan orchid:install
# 创建管理员账户
php artisan orchid:admin admin admin@admin.com password

快速开始

创建第一个屏幕(Screen)

# 创建屏幕
php artisan orchid:screen UserScreen

定义Screen内容

<?php
namespace App\Orchid\Screens;
use Orchid\Screen\Screen;
use Orchid\Screen\Fields\Input;
use Orchid\Screen\Fields\TextArea;
use Orchid\Support\Facades\Layout;
use Orchid\Screen\Actions\Button;
use Illuminate\Http\Request;
class UserScreen extends Screen
{
    /**
     * 显示名称
     */
    public function name(): string
    {
        return '用户管理';
    }
    /**
     * 查询数据
     */
    public function query(): array
    {
        return [];
    }
    /**
     * 权限控制
     */
    public function permission(): ?iterable
    {
        return [
            'platform.systems.users',
        ];
    }
    /**
     * 布局定义
     */
    public function layout(): iterable
    {
        return [
            Layout::rows([
                Input::make('user.name')
                    ->title('姓名')
                    ->placeholder('请输入姓名')
                    ->required(),
                Input::make('user.email')
                    ->title('邮箱')
                    ->placeholder('请输入邮箱')
                    ->type('email'),
                TextArea::make('user.bio')
                    ->title('简介')
                    ->rows(5),
                Button::make('保存')
                    ->method('save')
                    ->class('btn btn-primary'),
            ]),
        ];
    }
    /**
     * 保存操作
     */
    public function save(Request $request)
    {
        // 处理保存逻辑
        $request->validate([
            'user.name' => 'required',
            'user.email' => 'required|email',
        ]);
        // 保存数据
        return redirect()->route('platform.user.list')->with('success', '保存成功!');
    }
}

配置路由

routes/platform.php 文件中:

use App\Orchid\Screens\UserScreen;
use Tabuna\Breadcrumbs\Trail;
Route::screen('users', UserScreen::class)
    ->name('platform.user.list')
    ->breadcrumbs(function (Trail $trail) {
        return $trail->parent('platform.index')
            ->push('用户管理', route('platform.user.list'));
    });

创建菜单

app/Orchid/PlatformProvider.php 中:

public function menu(): array
{
    return [
        Menu::make('用户管理')
            ->icon('user')
            ->route('platform.user.list')
            ->title('系统管理'),
        Menu::make('仪表盘')
            ->icon('speedometer')
            ->route('platform.index')
            ->title('概览'),
    ];
}

常用功能

数据表格

use Orchid\Screen\TD;
use Orchid\Screen\Actions\Link;
use Orchid\Screen\Actions\Button;
public function layout(): iterable
{
    return [
        Layout::table('users', [
            TD::make('id', 'ID')
                ->sort(),
            TD::make('name', '姓名')
                ->render(function ($user) {
                    return Link::make($user->name)
                        ->route('platform.user.edit', $user);
                }),
            TD::make('email', '邮箱')
                ->sort(),
            TD::make('created_at', '创建时间')
                ->sort(),
            TD::make('action', '操作')
                ->alignRight()
                ->render(function ($user) {
                    return Button::make('删除')
                        ->method('delete')
                        ->confirm('确定删除该用户吗?')
                        ->parameters(['id' => $user->id]);
                }),
        ]),
    ];
}

表单组件

use Orchid\Screen\Fields\Input;
use Orchid\Screen\Fields\Select;
use Orchid\Screen\Fields\DateTimer;
use Orchid\Screen\Fields\Upload;
use Orchid\Screen\Fields\Relation;
Layout::rows([
    Input::make('title')->title('标题'),
    Select::make('status')
        ->options([
            'active' => '激活',
            'inactive' => '未激活'
        ])
        ->title('状态'),
    DateTimer::make('publish_date')
        ->title('发布日期'),
    Upload::make('avatar')
        ->title('头像'),
    Relation::make('category_id')
        ->fromModel(Category::class, 'name')
        ->title('所属分类'),
])

Tabs布局

Layout::tabs([
    '基本信息' => Layout::rows([
        Input::make('name')->title('姓名'),
        Input::make('email')->title('邮箱'),
    ]),
    '联系方式' => Layout::rows([
        Input::make('phone')->title('电话'),
        Input::make('address')->title('地址'),
    ]),
])

权限控制

// 在Screen中定义权限
public function permission(): ?iterable
{
    return [
        'platform.systems.users' => '用户管理',
        'platform.systems.roles' => '角色管理',
    ];
}

自定义样式

// 添加自定义CSS和JS
public function styles(): array
{
    return [
        '/css/custom.css',
    ];
}
public function scripts(): array
{
    return [
        '/js/custom.js',
    ];
}

常用命令

# 创建Screen
php artisan orchid:screen MyScreen
# 创建Layout
php artisan orchid:layout MyLayout
# 发布配置文件
php artisan vendor:publish --provider="Orchid\Platform\Providers\FoundationServiceProvider"
# 更新Orchid
composer update orchid/platform

部署注意事项

  1. 生产环境优化

    php artisan config:cache
    php artisan route:cache
    php artisan view:cache
  2. 文件权限

    chmod -R 755 storage/
    chmod -R 755 bootstrap/cache/
  3. 环境变量:确保 .env 文件配置正确。

学习资源

  • 官方文档:https://orchid.software/en/docs
  • GitHub:https://github.com/orchidsoftware/platform
  • 社区论坛:https://github.com/orchidsoftware/platform/discussions

如果您有具体的使用场景或遇到特定问题,欢迎告诉我,我可以提供更针对性的解决方案!

抱歉,评论功能暂时关闭!