该软件包使用 Laravel 的标准配置系统。它将主要参数存储在 config 目录中,平台的主要文件是 platform.php 文件。每个设置都有注释解释其用途。

注意。 缓存配置文件后,如果进行更改,请不要忘记清除缓存。使用 php artisan config:clear 命令刷新它。

在本节中,我们将深入研究配置文件,并提供每个参数的详细说明。

域名

'domain' => env('PLATFORM_DOMAIN', null),

对于许多项目来说,管理面板的位置地址起着重要作用。例如,应用程序位于 example.com,而平台位于 admin.example.com 或第三方域名上。

要指定您希望用于平台的地址,可以在配置文件中设置 domain 参数:

'domain' => 'admin.example.com',

需要注意的是,您的 Web 服务器设置必须正确配置才能使其正常工作。例如,如果您使用的是 Apache,您需要为配置文件中指定的域名设置虚拟主机。

前缀

'prefix' => env('PLATFORM_PREFIX', 'admin'),

prefix 参数允许您将默认的 admin 前缀更改为其他任何名称,例如 orchidadministrator。如果您希望为管理面板使用不同的前缀,或者默认前缀已被应用程序的其他部分使用,这将非常有用。

例如,如果您将前缀设置为 dashboard,则管理员登录页面的 URL 将变为 https://example.com/dashboard/login,而不是 https://example.com/admin/login

要更改前缀,您可以更新配置文件中的前缀参数:

'prefix' => 'dashboard',

值得注意的是,更改前缀也会更改管理面板内所有路由的 URL,因此请确保更新引用旧前缀的任何链接或重定向。

中间件

'middleware' => [
    'public'  => [
        'web', 
        'cache.headers:private;must_revalidate;etag'
    ],
    'private' => [
        'web',
        'platform',
        'cache.headers:private;must_revalidate;etag'
    ],
],

middleware 参数允许您添加或更改用于管理面板的中间件(中间层)。默认情况下,平台带有两组中间件:publicprivate

public 中间件应用于未经授权用户可以访问的路由,例如登录页面。而 private 中间件则应用于仅授权用户可以访问的路由,例如仪表板页面。

您可以根据需要添加任意数量的新中间件。例如,您可以添加一个过滤特定 IP 地址范围请求的中间件,或一个检查有效 API 令牌的中间件。

登录页面

'auth' => true,

auth 参数控制软件包是否使用其自己的简单登录界面。默认情况下,它设置为 true,这意味着平台将使用其自己的登录界面。

如果您需要更高级的功能,例如密码恢复或双因素身份验证,您可以将 auth 设置为 false,并使用像 Jetstream 这样的包,或者自己实现登录界面。

要使用像 Jetstream 这样的包,您需要根据其文档进行安装和配置。如果您自己实现登录界面,您需要为登录过程创建必要的控制器、视图和路由。

'auth' => false,

主页

index 参数控制用户首次登录或点击导航栏中的徽标或链接时看到的管理面板主页。

'index' => 'platform.main',

该参数的默认值是 platform.main,对应于平台的主仪表板页面。

您可以将其更改为应用程序中定义的任何其他路由。例如,如果您希望将用户重定向到自定义仪表板页面,您可以更新 index 参数以指向该路由:

'index' => 'custom.dashboard',

值得注意的是,您需要为新的主页创建相应的路由和控制器。

资源文件

'resource' => [
    'stylesheets' => [],
    'scripts'     => [],
],

resource 参数允许您向管理面板添加自己的样式表或 JavaScript 脚本。您可以在配置文件中全局添加路径到相应的数组中。

例如,如果您希望在管理面板的每个页面上包含自定义样式表,可以将路径添加到 stylesheets 数组中:

'resource' => [
    'stylesheets' => [
        '/path/to/custom.css'
    ],
    'scripts'     => [
        '/path/to/custom.js', // 公共目录中的本地路径
        'https://cdn.example.com/app.js', // CDN 路径
    ],
],

值得注意的是,资源文件必须存在于 public 目录中才能访问它。

外观模式

要更改某些模板,不必发布整个包;您可以自定义用户界面的某一部分以指定徽标、附带文档等。

'template' => [
    'header' => null,
    'footer' => null,
],

模型类

希望更改某些类的行为是很正常的。为了让平台使用您的模型类而不是其自身的类,必须提前注册它们的替换:

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use Orchid\Platform\Dashboard;

class AppServiceProvider extends ServiceProvider
{
    /**
     * 启动任何应用程序服务。
     *
     * @return void
     */
    public function boot()
    {
        Dashboard::useModel(
            \Orchid\Platform\Models\User::class, 
            \App\Models\User::class
        );
    }
}

覆盖 Blade 模板

后台页面是使用 Blade 创建的。您可以使用 Laravel 的模板覆盖机制更改这些模板(这对于所有 Laravel 包都是相同的,不仅仅是 Orchid);

🚨 警告! 覆盖的模板不会接收更新或错误修复。 可以将其视为关闭自动驾驶。

遵循 Laravel 的机制来覆盖包中的模板是在应用程序中创建 /resources/views/vendor/platform/ 目录,并创建与原始模板路径相同的新模板。

例如,要覆盖 /vendor/orchid/platform/resources/views/partials/search.blade.php,请在 /resources/views/vendor/platform/partials/search.blade.php 创建一个新模板。一个示例:

your-project/
├─ ...
└─ resources/
   └─ views/
      └─ vendor/
         └─ platform/
            └─ partials/
                └─ search.blade.php          

我们的朋友