天天看点

GitHub 4.8K stars! 快速构建漂亮的 TALL 堆栈应用程序

作者:GitHub精选
《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的是Laravel 的管理面板、表单构建器和表格构建器Filament。
GitHub 4.8K stars! 快速构建漂亮的 TALL 堆栈应用程序

Filament要求

Filament有一些运行要求:

  • PHP 8.0+
  • Laravel v8.0+
  • Livewire v2.0+

此软件包与其他 Filament v2.x 产品兼容。表单生成器、表格生成器和通知预装在软件包中,无需其他安装步骤即可在管理面板中使用它们。

安装

要开始使用管理面板,您可以使用以下命令安装它:

composer require filament/filament:"^2.0"           

每次升级 Filament 时,都需要运行filament:upgrade命令。我们建议将此添加到您composer.json的post-update-cmd:

"post-update-cmd": [    // ...    "@php artisan filament:upgrade"],           

如果您没有,您可以使用以下方法创建一个新用户帐户:

php artisan make:filament-user           

访问您的管理面板/admin登录,您现在可以开始构建资源了!

GitHub 4.8K stars! 快速构建漂亮的 TALL 堆栈应用程序

发布配置

您可以使用以下命令发布包的配置:

php artisan vendor:publish --tag=filament-config           

发布翻译

您可以使用以下方式发布语言文件:

php artisan vendor:publish --tag=filament-translations           

由于此包依赖于其他 Filament 包,您可能希望也翻译这些包:

php artisan vendor:publish --tag=filament-forms-translationsphp artisan vendor:publish --tag=filament-tables-translationsphp artisan vendor:publish --tag=filament-support-translations           

升级

要将软件包升级到最新版本,您必须运行:

composer updatephp artisan filament:upgrade           

我们建议将filament:upgrade命令添加到您composer.json的 'spost-update-cmd以自动运行它:

"post-update-cmd": [    // ...    "@php artisan filament:upgrade"],           

创建一个页面

要创建新页面,您可以使用:

php artisan make:filament-page Settings           

此命令将创建两个文件 - /PagesFilament 目录中的页面类和/pagesFilament 视图目录中的视图。

页面类都是整页Livewire组件,带有一些额外的实用程序,您可以在管理面板中使用。

在导航中有条件地隐藏页面

shouldRegisterNavigation()您可以通过覆盖Page 类中的方法来防止页面出现在菜单中。如果您想控制哪些用户可以在侧边栏中看到该页面,这将非常有用。

protected static function shouldRegisterNavigation(): bool{    return auth()->user()->canManageSettings();}           

请注意,所有用户仍然可以通过其直接 URL 访问此页面,因此要完全限制访问,您还必须检查mount()页面的方法:

public function mount(): void{    abort_unless(auth()->user()->canManageSettings(), 403);}           

授权访问管理面板

要设置您App\Models\User在非本地环境中访问 Filament,您必须实施FilamentUser:

<?php namespace App\Models; use Filament\Models\Contracts\FilamentUser;use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable implements FilamentUser{    // ...     public function canAccessFilament(): bool    {        return str_ends_with($this->email, '@yourdomain.com') && $this->hasVerifiedEmail();    }}           

该canAccessFilament()方法返回true或false取决于是否允许用户访问 Filament。在此示例中,我们检查用户的电子邮件是否以结尾@yourdomain.com以及他们是否已验证其电子邮件地址。

设置头像

开箱即用,Filament 使用ui-avatars.com根据用户名生成头像。要提供您自己的头像 URL,您可以实现HasAvatar:

<?php namespace App\Models; use Filament\Models\Contracts\FilamentUser;use Filament\Models\Contracts\HasAvatar;use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable implements FilamentUser, HasAvatar{    // ...     public function getFilamentAvatarUrl(): ?string    {        return $this->avatar_url;    }}           

该getFilamentAvatarUrl()方法用于检索当前用户的头像。如果null从该方法返回,Filament 将回退到 ui-avatars.com。

—END—

开源协议:MIT license

开源地址:https://github.com/filamentphp/filament

继续阅读