mohamadtsn / laravel-supernova
它是 Laravel 应用的基本管理面板
3.0.3
2023-06-24 06:38 UTC
Requires
- php: ^8.0|^8.1
- biscolab/laravel-recaptcha: ^6.0
- illuminate/auth: ^10.0
- illuminate/routing: ^10.0
- illuminate/support: ^10.0
- mohamadtsn/laravel-repository: ^2.0
- realrashid/sweet-alert: ^7.0
- spatie/laravel-permission: ^5.10
README
Laravel Supernova
为您的 Laravel App 提供一个专业且强大的管理面板。🎁
安装: ⬇️
composer require mohamadtsn/laravel-supernova
配置: ⚙️
发布基本供应商文件
php artisan supernova:publish [tags] --force
标签列表
- supernova-resources
- supernova-base-resources
- supernova-config
- supernova-migrations
- supernova-virtual-host-routes
- supernova-recaptcha-config
- supernova-basic-routes
发布自定义供应商文件
php artisan supernova:publish [tags] --force
将 config/app.php
中的区域设置为 fa
'locale' => 'fa',
更改父类用户模型
将以下代码放入 App\Models\User.php
use Mohamadtsn\Supernova\Models\User as SupernovaUser; // use supernova User Model use Mohamadtsn\Supernova\Classes\Traits\PermissionWrapper; class User extends SupernovaUser { use HasApiTokens, HasFactory, Notifiable, PermissionWrapper; // other class methods }
在 App\Models\User.php
中的 fillable
字段中添加 level
protected $fillable = [ 'level', ];
在 Database\Seeders\DatabaseSeeder.php
的 run()
方法中添加以下种子器调用
class DatabaseSeeder extends Seeder { public function run() { // Other seeders call // You add seeders $this->call(UserSeeder::class); // #1 $this->call(PermissionSeeder::class); // #2 } }
在 config/auth.php
的 guards
部分中添加以下内容
'guards' => [ // other guard 'admin' => [ 'driver' => 'session', 'provider' => 'users', ], ],
将这些放入 app/Http/Kernel.php
中,如下所示
use App\Http\Middleware\Panel\CheckPermission; // use Middleware class CheckPermission class Kernel extends HttpKernel { protected $routeMiddleware = [ // other routeMiddleware 'permission' => CheckPermission::class, // add CheckPermission::class on this section ]; }
在 App/Http/Middleware/Authenticate.php
的 redirectTo
方法中更改以下内容
protected function redirectTo($request) { if ($request->expectsJson()) { return response()->json([ 'title' => 'access denied', 'text' => 'unauthorized ...!', 'type' => 'error' ], Response::HTTP_FORBIDDEN); } return route('panel.login'); }
将 admin 面板路由文件 routes/admin.php
添加到 App/Providers/RouteServiceProvider.php
的 boot()
方法中
重要!!请确保在 `web.php` 之前添加。
仔细查看运行使用虚拟域的项目
public function boot() { $this->routes(function () { // other routes file Route::middleware('web') ->namespace($this->namespace) ->domain(config('supernova.management_url')) ->group(base_path('routes/admin.php')); // #1 add admin panel routes (admin.php) Route::middleware('web') ->namespace($this->namespace) ->domain(config('app.url')) ->group(base_path('routes/web.php')); // #2 web.php routes }); }
使用命令行服务(php artisan serve
)运行项目
public function boot() { $this->routes(function () { // other routes file Route::middleware('web') ->namespace($this->namespace) ->group(base_path('routes/admin.php')); // #1 add admin panel routes (admin.php) Route::middleware('web') ->namespace($this->namespace) ->domain(config('app.url')) ->group(base_path('routes/web.php')); // #2 web.php routes }); }
设置模式
- 在
.env
文件中设置数据库配置连接 - 使用以下命令进行迁移和播种
php artisan migrate:fresh --seed // "Associated with" Drop All Tables & Migrate and seeding "Or" php artisan migrate --seed // "Without" Drop All Tables & Migrate and seeding
重新生成 composer 自动加载
composer dump-autoload
用法
方法 #1 ====> 使用虚拟主机设置
-
创建一个名为
Management
的virtual subdomain
- 示例
- 原始域名 =>
example.test
// 主 URL - 子域名域名 =>
management.example.test
// 管理面板 URL
- 原始域名 =>
- 示例
-
将 param
管理面板 URL
添加到env
文件中,名称为APP_MANAGEMENT_URL
,如下所示APP_URL= http://shop.test APP_MANAGEMENT_URL= http://management.shop.test
-
将 config
管理面板 URL
添加到config/supernova.php
文件中,名称为management_url
,如下所示return [ // other configs 'management_url' => env('APP_MANAGEMENT_URL', 'http://management.example.test'), ]
-
登录到面板
management.example.test/login
-
仪表板面板
management.example.test/
方法 #2 ====> 不使用虚拟主机设置
- 发布基本路由
php artisan supernova:publish supernova-basic-routes --force
- 使用命令服务应用
php artisan serve
- 提示:您只能通过前缀
panel
访问Supernova 面板路由
- 转到
127.0.0.1:8000/panel/login
登录到面板
- 电子邮件:
admin@gmail.com
- 密码:
supernova@123
享受它 👋