mustafakhaleddev / laravel-atomic
Laravel原子式管理面板
1.0
2019-01-03 13:25 UTC
Requires
- php: ^7.1.3
- laracasts/flash: 3.0.2
- yajra/laravel-datatables-oracle: ~8.0
This package is auto-updated.
Last update: 2024-09-08 07:52:55 UTC
README
🚀 文档
Atomic Panel的完整文档在这里:这里。
💪 支持我
在Patreon上支持我,帮助我继续前行。
🔥 入门
Atomic Panel是一款精美设计的Laravel管理面板。旨在让您成为银河系中最高效的开发者,并为您提供引领未来的机会。
要求
- PHP:
^7.0
- Laravel:
^5.5
安装
在您的Laravel项目的composer.json
中要求此包。这将下载该包
composer require mustafakhaleddev/laravel-atomic
安装AtomicPanel
php artisan atomic:install
在config/app.php
中添加ServiceProvider
'providers' => [ /* * Package Service Providers... */ App\Providers\AtomicServiceProvider::class, ]
安装时发布的文件
-app
-Providers
-AtomicServiceProvider.php
__________________________
-config
-AtomicPanel.php
__________________________
-public
-vendor
-atomic
__________________________
-resources
-views
-vendor
-atomic
__________________________
AtomicPanel
创建管理员用户
php artisan atomic:user
然后打开https://yourwebsite.domain/atomic
。
授权Atomic
在您的app/Providers/AtomicServiceProvider.php
文件中,有一个gate方法。这个授权门控控制对非本地环境中的Atomic的访问。默认情况下,当当前应用程序环境为本地时,任何用户都可以访问Atomic Panel。您可以根据需要自由修改此门控来限制对您的Atomic安装的访问
/** * Register the Atomic gate. * * This gate determines who can access Atomic in non-local environments. * * @return void */ protected function gate() { Gate::define('viewAtomic', function ($user) { return in_array($user->email, [ 'atomic@mustafakhaled.com' ]); }); }
用法
Atomic Panel是最佳的CRUD工具。它与Laravel模型一起工作。如果您不想使用Laravel模型,您可以创建自己的页面。
⏰ 3步实现最佳CRUD
☝ 第1步
在您的模型中包含AtomicModel
特质
<?php namespace App; use Illuminate\Database\Eloquent\Model; use MustafaKhaled\AtomicPanel\AtomicModel; class MyModel extends Model { use AtomicModel; }
☝ 第2步
在模型中覆盖AtomicFields()
方法
<?php namespace App; use Illuminate\Database\Eloquent\Model; use MustafaKhaled\AtomicPanel\AtomicModel; class MyModel extends Model { use AtomicModel; public static function AtomicFields() { return []; } }
☝ 第3步
注册您的CRUD字段
<?php namespace App; use Illuminate\Database\Eloquent\Model; use MustafaKhaled\AtomicPanel\AtomicModel; use MustafaKhaled\AtomicPanel\Fields\ID; use MustafaKhaled\AtomicPanel\Fields\Text; use MustafaKhaled\AtomicPanel\Fields\Trix; class MyModel extends Model { use AtomicModel; public static function AtomicFields() { return [ ID::make('id', 'id'), Text::make('Title', 'title'), Trix::make('Content', 'content'), ]; } }