skydiver / laravel-adminer
Adminer (由Jakub Vrana开发) 的Laravel 5包装器
4.2.5
2016-09-01 17:56 UTC
Requires
- php: >=5.4.0
- illuminate/support: 5.*
This package is auto-updated.
Last update: 2024-09-17 13:16:54 UTC
README
Laravel 5的Adminer包装器。Adminer是由Jakub Vrana编写的单个PHP文件中的优秀数据库管理工具。它是PhpMyAdmin(还支持PostgreSQL、SQLite、MS SQL、Oracle、Firebird、SimpleDB、Elasticsearch和MongoDB)的绝佳替代品。
使用方法
要包含库,更新composer.json
文件中的require
部分,使用
"miroc/laravel-adminer": "dev-master"
并运行composer update
。
要将Adminer添加到Laravel路由(例如/adminer),更新routes.php
文件,使用
Route::any('adminer', '\Miroc\LaravelAdminer\AdminerController@index');
禁用CSRF中间件
Adminer与VerifyCsrfToken中间件不兼容,因此必须在其路由上禁用它。
Laravel 5.1+
在VerifyCsrfToken.php
中通过将其添加到$except
数组来禁用adminer路由上的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_'前缀。
如果您发现任何问题,请告诉我。