alanmburr / laravel-adminer
Adminer(由Jakub Vrana编写)是Laravel 5+的包装器
v4.8.1
2023-11-14 12:52 UTC
Requires
- php: ^7.4|^8.0
- illuminate/support: ^9.21|^10.0
This package is auto-updated.
Last update: 2024-09-14 14:45:15 UTC
README
Laravel 10对Adminer的包装器。Adminer是由Jakub Vrana编写的单PHP文件优秀数据库管理工具。它是PhpMyAdmin的绝佳替代品(也支持PostgreSQL、SQLite、MSSQL、Oracle、Firebird、SimpleDB、Elasticsearch和MongoDB)。
注意
此包最初是为Laravel 5构建的,因此一些信息可能已过时。但是,包应该仍然能够正常工作。
用法
要包含库,请转到您的项目文件夹并运行
composer require "alanmburr/laravel-adminer"
要将adminer添加到Laravel路由(例如/adminer),请更新routes/web.php
文件
Route::any('adminer', [\AlanMBurr\LaravelAdminer\AdminerController::class, 'index']);
要使用Laravel默认连接自动登录Adminer,请添加以下控制器而不是
Route::any('adminer', [\AlanMBurr\LaravelAdminer\AdminerAutologinController::class, 'index']);
禁用CSRF中间件
Adminer与VerifyCsrfToken中间件不兼容,因此必须在其路由上禁用它。
Laravel 5.1+
在VerifyCsrfToken.php
中,通过将adminer路由添加到$except
数组中禁用CSRF
protected $except = [ 'adminer' ];
Laravel 5.0
最简单的方法是创建一个自定义VerifyCsrfToken中间件,该中间件排除了选定的路由
use Closure; use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken; class CustomVerifyCsrfToken extends VerifyCsrfToken { protected $excludedRoutes = ['adminer']; public function handle($request, Closure $next) { if ($this->isExcludedRoute($request)){ return $next($request); } else { return parent::handle($request, $next); } } private function isExcludedRoute($request) { if (count($request->segments()) > 0 && in_array($request->segment(1), $this->excludedRoutes)){ return true; } else { return false; } } }
然后,在Kernel.php
中使用该中间件代替VerifyCsrfToken
protected $middleware = [ 'Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode', 'Illuminate\Cookie\Middleware\EncryptCookies', 'Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse', 'Illuminate\Session\Middleware\StartSession', 'Illuminate\View\Middleware\ShareErrorsFromSession', 'Path\To\CustomVerifyCsrfToken', ];
备注
由于Laravel5和Adminer的功能名称冲突,adminer.php文件中的函数'cookie()'、'redirect()'和'view()'前添加了'adm_'前缀。
如果您发现任何问题,请告诉我。