digihood / digihood-admin-bar
Requires
- php: >= 7.0.0
- laravel/framework: >= 5.5.0
Requires (Dev)
- mockery/mockery: ^1.2
- phpunit/phpunit: ^7.4
This package is not auto-updated.
Last update: 2024-09-26 18:57:43 UTC
README
此包可以帮助您将类似Wordpress的admin栏添加到您的Laravel应用程序中。Admin栏是一个易于访问的工具栏,可以方便地访问您的管理页面。
支持版本
- laravel/framework >= 5.5
安装
要安装laravel-admin-bar,请使用Composer进行依赖
composer require shrft/laravel-admin-bar
一旦Composer安装完成,运行以下命令
php artisan vendor:publish --provider="Digihood\AdminBar\AdminBarServiceProvider"
基本用法
您可以通过名为adminbar.php
的配置文件来配置admin栏的显示方式和时机。如果您已经运行了上面的发布命令,您应该已经在config目录下找到了这个文件。
以下是adminbar.php
的默认配置。您可以从这个文件的文档块中学习如何配置Admin Bar。
return array( /** * * Change this to false to disable admin bar * * */ 'enabled'=>true, /** * * Please specify your admin pages' url so that Admin Bar does not show up in * your admin pages. * * The default is 'admin/*' * When loading Admin Bar, It checks if current url matches the path set here with Illuminate\Http\Request::is(). * * */ 'excludes' => 'admin/*', /** * * In order to show Admin Bar only for logged in admin users, * please specify how to tell if current visitor is logged in and also an admin * user. * * As a default, we just return true. * * */ 'is_admin' => function(){ // This is an example code. // // if( Auth::user() && Auth::user()->isAdmin()){ // return true; // } // return false; return true; }, /** * * Specify links to show on Admin Bar. * * */ 'menus' => array( ['title'=>'Admin Top', 'path'=>'/admin'], ['title'=>'Add a post', 'path'=>'/admin/post/new'], ), );
高级配置
动态生成路径
您可以将回调函数传递给menus
数组中的path
,并在回调函数中访问Illuminate\HttpRequest $request
,从而可以根据当前URL动态生成链接。
如何在每个帖子页面添加编辑此帖子
链接
假设您有以下两个路由,第一个是帖子页面,第二个是帖子的编辑页面。
# article page Route::get('/post/{id}', ['uses'=>'PostController@show']); # page to edit an article Route::get('/admin/post/edit/{id}', ['uses'=>'Admin\PostController@edit']);
然后,您可以这样做。
'menus' => array( ['title'=>'Admin Top', 'path'=>'/admin'], ['title'=>'edit this post', 'path'=>function($request){ $postid = $request->route('id'); return '/admin/post/edit/' . $postid; }, 'filter'=>'post/*'], ),
下面的filter
部分将进行解释。在上面的例子中,它表示只有当当前页面的路径以post/
开头时才显示编辑此帖子
链接。
过滤器
您可以通过配置Admin Bar,使得只有在特定条件下才会显示链接。
例如,如果您想在访问以'post/'开头的URL路径的页面时显示添加帖子
链接,您可以将过滤器选项设置如下。
'menus' => array( ['title'=>'Admin Top', 'path'=>'/admin'], ['title'=>'Add Post', 'path'=>'/admin/post/new', 'filter'=>'post/*'], )
Admin Bar使用Illuminate\Http\Request::is()
检查当前URL是否与过滤器中设置的路径匹配,并在返回true时显示链接。
如果您需要更复杂的配置,也可以将回调函数传递给过滤器选项。
如果您只想向具有author
角色的用户显示添加帖子
链接,您可能需要这样做。
'menus' => array( ['title'=>'Admin Top', 'path'=>'/admin'], ['title'=>'Add Post', 'path'=>'/admin/post/new', 'filter'=>function($request){ return Auth::user()->isRole('author'); }], )
在此回调中,您也可以访问Illuminate\HttpRequest $request
。
下拉菜单
您可以将下拉菜单添加到Admin Bar。要创建下拉菜单,请将数组传递给path
。
'menus' => array( ['title'=>'Admin Top', 'path'=>'/admin'], ['title'=>'Drop Down', 'path'=>[ ['title'=>'Option1', 'path'=>'/path/to/option1'], ['title'=>'Option2', 'path'=>'/path/to/option2'] ] ], ),
许可证
Laravel Admin Bar是开源软件,采用MIT许可证。